dex2oat: add --cpu-set command-line option
Enables affinitizing dex2oat threads to a specific group of CPUs.
Bug: 141446571
Test: art/test/run-test -Xcompiler-option --cpu-set=0,1 956
Test: art/test/run-test -Xcompiler-option --cpu-set=,0,1 956
Test: art/test/run-test -Xcompiler-option --cpu-set=,, 956
Test: art/test/run-test -Xcompiler-option --cpu-set=0,a 956
Test: cmdline_parser_test
Change-Id: I4bb1519beacd329da1a69af31982a6154d315865
diff --git a/cmdline/cmdline_parser_test.cc b/cmdline/cmdline_parser_test.cc
index 052d9ec..49e0a4f 100644
--- a/cmdline/cmdline_parser_test.cc
+++ b/cmdline/cmdline_parser_test.cc
@@ -20,7 +20,6 @@
#include "gtest/gtest.h"
-#include "base/mutex.h"
#include "base/utils.h"
#include "jdwp_provider.h"
#include "experimental_flags.h"
@@ -579,4 +578,21 @@
EXPECT_KEY_VALUE(map, M::MethodTrace, Unit{});
EXPECT_KEY_VALUE(map, M::LargeObjectSpace, gc::space::LargeObjectSpaceType::kMap);
} // TEST_F
+
+TEST_F(CmdlineParserTest, TypesNotInRuntime) {
+ CmdlineType<std::vector<int32_t>> ct;
+ auto success0 =
+ CmdlineParseResult<std::vector<int32_t>>::Success(std::vector<int32_t>({1, 2, 3, 4}));
+ EXPECT_EQ(success0, ct.Parse("1,2,3,4"));
+ auto success1 = CmdlineParseResult<std::vector<int32_t>>::Success(std::vector<int32_t>({0}));
+ EXPECT_EQ(success1, ct.Parse("1"));
+
+ EXPECT_FALSE(ct.Parse("").IsSuccess());
+ EXPECT_FALSE(ct.Parse(",").IsSuccess());
+ EXPECT_FALSE(ct.Parse("1,").IsSuccess());
+ EXPECT_FALSE(ct.Parse(",1").IsSuccess());
+ EXPECT_FALSE(ct.Parse("1a2").IsSuccess());
+ EXPECT_EQ(CmdlineResult::kOutOfRange, ct.Parse("1,10000000000000").GetStatus());
+ EXPECT_EQ(CmdlineResult::kOutOfRange, ct.Parse("-10000000000000,123").GetStatus());
+} // TEST_F
} // namespace art