diff options
author | Robert Sesek <rsesek@google.com> | 2016-11-03 21:33:44 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-11-03 21:33:44 +0000 |
commit | f48a0be2814c330f4349138347bdb7d450b299a7 (patch) | |
tree | 70f4e24bd37dcea98fc463ebbacbecf4893f072d | |
parent | ca3de3bbbe674ebd974516092785bbf4e78e14f3 (diff) | |
parent | 661959493d43922be0fe21e73c0fc71822ddfece (diff) | |
download | seccomp-tests-f48a0be2814c330f4349138347bdb7d450b299a7.tar.gz |
Add a README.md with the instructions for updating the seccomp-tests from upstream. am: 3efdf98e35 am: ec91cea555 am: 82096b8717
am: 661959493d
Change-Id: Ifcf456f980fa717ae6a9cc50fb44226ea2e56e85
-rw-r--r-- | README.md | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..f6b2577 --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# Seccomp-BPF Kernel Self-Test Suite + +This repository contains a mirror of the upstream Linux kernel test suite for the Seccomp-BPF +system call filter. The test suite runs as part of CTS, but it is maintained in a separate +repository because the code is GPL. + +## Syncing to Upstream + +Rather than hold the entire Linux history in this repository, only the subdirectory for the Seccomp +selftests are preserved here. In order to sync this repository to the upstream Linux, follow these +instructions. + +### First-Time Setup + +These instructions only need to be followed for the first time you are updating the repository from +a checkout. + +1. Configure a remote to use as the source repository (limited to only syncing the master branch): + ``` + git remote add upstream-linux git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git -t master --no-tags + ``` + +### Updating the Source + +Perform these steps every time you need to update the test suite from upstream. + +1. Update the remote to fetch the latest sources: + ``` + git remote update upstream-linux + ``` + +2. Create a new local branch from the updated source, replacing YYYYMMDD with today's date: + ``` + git checkout -b update-YYYYMMDD upstream-linux/master + ``` + +3. Filter the branch to just the subtree containing the Seccomp test suite: + ``` + git filter-branch --subdirectory-filter tools/testing/selftests/seccomp + ``` + +4. Start a new CL branch into which the updated sources will be merged: + ``` + repo start sync-upstream . + ```` + +5. Subtree-merge the changes into the directory. Resolve any conflicts with the local modifications +present in the repository. + ``` + git subtree merge -P linux/ update-YYYYMMDD + ``` + +Now build and test the changes by running CTS: + + $ mmma cts/tests/tests/os + $ cts-tradefed run singleCommand cts -m CtsOsTestCases -t android.os.cts.SeccompTest + +The tests are expected to pass on arm, arm64, x86, and x86\_64. If they pass, then repo +upload/submit the CL branch. Afterwards, you can remove the update-YYYYMMDD branch. + +### Linux Space-Saving + +If you already have a Linux kernel checkout, you can skip adding Linux as a remote and instead +perform steps 1-3 of "Updating the Source" in the kernel checkout. Then simply fetch the filtered +branch into the seccomp-tests repository and subtree merge it (as FETCH\_HEAD). This will avoid +copying the entire kernel history into your local checkout. |