@@ -56,7 +56,50 @@ PLATFORM_UTIL_TEST("find docker container ID") {
5656
5757 std::istringstream is (test_case.input );
5858
59- auto maybe_container_id = container::find_docker_container_id (is);
59+ auto maybe_container_id = container::find_container_id (is);
60+ if (test_case.expected_container_id .has_value ()) {
61+ REQUIRE (maybe_container_id.has_value ());
62+ CHECK (*maybe_container_id == *test_case.expected_container_id );
63+ } else {
64+ CHECK (!maybe_container_id.has_value ());
65+ }
66+ }
67+
68+ PLATFORM_UTIL_TEST (" find Fargate 1.3 container ID" ) {
69+ struct TestCase {
70+ size_t line;
71+ std::string_view name;
72+ std::string input;
73+ Optional<std::string> expected_container_id;
74+ };
75+
76+ auto test_case = GENERATE (values<TestCase>({
77+ {__LINE__, " empty inputs" , " " , nullopt },
78+ {__LINE__, " no Fargate 1.3 container ID" , " coucou" , nullopt },
79+ {__LINE__, " one line with Fargate 1.3 container ID" ,
80+ " 1:name=systemd:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da" ,
81+ " 432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da" },
82+ {__LINE__, " multiline with Fargate 1.3 container ID" , R"(
83+ 11:hugetlb:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da
84+ 10:pids:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da
85+ 9:cpuset:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da
86+ 8:net_cls,net_prio:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da
87+ 7:cpu,cpuacct:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da
88+ 6:perf_event:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da
89+ 5:freezer:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da
90+ 4:devices:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da
91+ 3:blkio:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da
92+ 2:memory:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da
93+ 1:name=systemd:/ecs/55091c13-b8cf-4801-b527-f4601742204d/432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da
94+ )" ,
95+ " 432624d2150b349fe35ba397284dea788c2bf66b885d14dfc1569b01890ca7da" },
96+ }));
97+
98+ CAPTURE (test_case.name );
99+
100+ std::istringstream is (test_case.input );
101+
102+ auto maybe_container_id = container::find_container_id (is);
60103 if (test_case.expected_container_id .has_value ()) {
61104 REQUIRE (maybe_container_id.has_value ());
62105 CHECK (*maybe_container_id == *test_case.expected_container_id );
0 commit comments