[libcxx-commits] [PATCH] D139147: [libc++][Android] Enable libc++ testing on Android

Ryan Prichard via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Jun 12 02:48:26 PDT 2023


rprichard updated this revision to Diff 530440.
rprichard added a comment.

Switch the Android run-buildbot-container from `--device /dev/kvm` back to
`--privileged`, but add an option to switch it back to `--device /dev/kvm`.

I've been trying to figure out a way to do the obvious thing of mapping the
container's libcxx-builder UID:GID (1000:1000) to my UID:GID on the host so
I don't have to grant special permissions to run the tests
(to `${MONOREPO_ROOT}/build` and `${MONOREPO_ROOT}/lib/abi/*`).
It *seems* like something that ought to be straightforward.
I was able to get it working with Docker's
userns-remap mode but then that broke multi-stage Docker builds. For the
moment, I need to use `--privileged` to make nsjail work, so make that the
default. Personally I'm just using chown and chmod to let the 1000 UID
modify my checkout.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139147/new/

https://reviews.llvm.org/D139147

Files:
  libcxx/CMakeLists.txt
  libcxx/cmake/caches/AndroidNDK.cmake
  libcxx/docs/TestingLibcxx.rst
  libcxx/docs/index.rst
  libcxx/lib/abi/i686-none-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
  libcxx/lib/abi/x86_64-none-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
  libcxx/test/configs/llvm-libc++-android.cfg.in
  libcxx/test/libcxx/experimental/fexperimental-library.compile.pass.cpp
  libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
  libcxx/test/libcxx/modules_include.gen.py
  libcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
  libcxx/test/std/atomics/stdatomic.h.syn/types.compile.pass.cpp
  libcxx/test/std/input.output/file.streams/fstreams/filebuf.members/close.pass.cpp
  libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp
  libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp
  libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp
  libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
  libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
  libcxx/test/std/input.output/iostream.format/ext.manip/get_money.pass.cpp
  libcxx/test/std/input.output/iostream.format/ext.manip/put_money.pass.cpp
  libcxx/test/std/input.output/string.streams/stringstream/stringstream.members/gcount.pass.cpp
  libcxx/test/std/language.support/support.srcloc/general.pass.cpp
  libcxx/test/std/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp
  libcxx/test/std/localization/locale.categories/category.collate/locale.collate.byname/transform.pass.cpp
  libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/is_1.pass.cpp
  libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/is_many.pass.cpp
  libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/scan_is.pass.cpp
  libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/scan_not.pass.cpp
  libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_1.pass.cpp
  libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_many.pass.cpp
  libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_1.pass.cpp
  libcxx/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_many.pass.cpp
  libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_en_US.pass.cpp
  libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_string_en_US.pass.cpp
  libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_en_US.pass.cpp
  libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_string_en_US.pass.cpp
  libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
  libcxx/test/std/re/re.traits/translate_nocase.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/assign.U.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/assign.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/assign.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/assign.unexpected.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/assign.unexpected.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/assign/emplace.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.inplace_init_list.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.unexpect_init_list.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/dtor.pass.cpp
  libcxx/test/std/utilities/expected/expected.expected/swap/free.swap.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/assign/assign.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/assign/assign.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/assign/assign.unexpected.copy.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/assign/assign.unexpected.move.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/assign/emplace.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/ctor/ctor.unexpect_init_list.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/dtor.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/swap/free.swap.pass.cpp
  libcxx/test/std/utilities/expected/expected.void/swap/member.swap.pass.cpp
  libcxx/test/std/utilities/format/format.functions/locale-specific_form.pass.cpp
  libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/ctad.static.compile.pass.cpp
  libcxx/test/support/filesystem_test_helper.h
  libcxx/utils/adb_run.py
  libcxx/utils/ci/BOT_OWNERS.txt
  libcxx/utils/ci/Dockerfile
  libcxx/utils/ci/Dockerfile.base
  libcxx/utils/ci/buildkite-pipeline.yml
  libcxx/utils/ci/run-buildbot
  libcxx/utils/ci/vendor/android/Dockerfile
  libcxx/utils/ci/vendor/android/emulator-functions.sh
  libcxx/utils/ci/vendor/android/nsjail.sh
  libcxx/utils/ci/vendor/android/run-buildbot-container
  libcxx/utils/ci/vendor/android/run-emulator.sh
  libcxx/utils/libcxx/test/android.py
  libcxx/utils/libcxx/test/features.py
  libcxx/utils/semaphore_tool.py
  libcxxabi/test/configs/llvm-libc++abi-android.cfg.in
  libcxxabi/test/test_demangle.pass.cpp



More information about the libcxx-commits mailing list