@@ -245,15 +245,30 @@ TEST_F(ServiceEndpointsConfigFileLoaderTest, TestIgnoreConfiguredEndpointUrls)
245245 ASSERT_STREQ (" true" , profiles[" default" ].GetValue (" ignore_configured_endpoint_urls" ).c_str ());
246246 ASSERT_STREQ (" TRUE" , profiles[" test" ].GetValue (" ignore_configured_endpoint_urls" ).c_str ());
247247 ASSERT_STREQ (" " , profiles[" empty" ].GetValue (" ignore_configured_endpoint_urls" ).c_str ());
248-
249- // Test absent key returns empty string
250- TempFile configFile2 (std::ios_base::out | std::ios_base::trunc);
251- configFile2 << " [profile absent]\n " ;
252- configFile2 << " region = us-east-1\n " ;
253- configFile2.flush ();
254-
255- AWSConfigFileProfileConfigLoader loader2 (configFile2.GetFileName (), true );
256- ASSERT_TRUE (loader2.Load ());
257- auto profiles2 = loader2.GetProfiles ();
258- ASSERT_STREQ (" " , profiles2[" absent" ].GetValue (" ignore_configured_endpoint_urls" ).c_str ());
248+ }
249+
250+ TEST_F (ServiceEndpointsConfigFileLoaderTest, TestMultipleServicesDefinitions)
251+ {
252+ TempFile configFile (std::ios_base::out | std::ios_base::trunc);
253+ ASSERT_TRUE (configFile.good ());
254+
255+ configFile << " [services foo]\n " ;
256+ configFile << " s3 =\n " ;
257+ configFile << " endpoint_url = http://foo.com\n " ;
258+ configFile << " \n [services bar]\n " ;
259+ configFile << " s3 =\n " ;
260+ configFile << " endpoint_url = http://bar.com\n " ;
261+ configFile << " \n [profile dev]\n " ;
262+ configFile << " services = foo\n " ;
263+ configFile.flush ();
264+
265+ AWSConfigFileProfileConfigLoader loader (configFile.GetFileName (), true );
266+ ASSERT_TRUE (loader.Load ());
267+ auto profiles = loader.GetProfiles ();
268+ const auto & profile = profiles[" dev" ];
269+
270+ // Test services name is parsed correctly
271+ auto servicesName = profile.GetServicesName ();
272+ ASSERT_TRUE (servicesName.has_value ());
273+ ASSERT_STREQ (" foo" , servicesName->c_str ());
259274}
0 commit comments