tree a1cd3dbd96f9db2a69a7d0d9ed539afe50263ae4
parent 49028193757710e77938a0031fdc76e7b1382b73
author chantra <chantra@users.noreply.github.com> 1659059999 -0700
committer GitHub <noreply@github.com> 1659059999 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJi4z8fCRBK7hj4Ov3rIwAAlZcIAKsUrl987eUimHSWwPIzORVl
 WuPsLiNtfm3nk+gQ8sApFjcC4hOR1ZhVMHdsaLJkbtgOZgTWZrEgWqz78+CJr/CH
 02EKamAGey2wpEGtCpl9YGE9924LgBBp0LfHWGOYCXqDiDuJ7rZCZguqMBt/vdCW
 9wRaHohq+AZinh0iBT39FoInxtB4oz2WZv4vkE3Ia0a7ph0/qowo/eXWxq34TF1n
 0rp/9edDsWwPk4rCZSxstxdcA70CRnVZFF59i6QoOQz32ChApc3kU6qZdweX0MG6
 TIkWyrx1QZi2xtvDLlrhbAQfqLwY/slDxvvOoAmsqbg4sYzhG63P2BQPrTl10NI=
 =Pszj
 -----END PGP SIGNATURE-----
 

[test] Fix wrapper script to allow testing individual tests (#4126)

When working on fixing individual tests, it is useful to be able to tell the test suite to only run that individual test.

The catch framework allows to do this. See https://github.com/catchorg/Catch2/blob/devel/docs/command-line.md#specifying-which-tests-to-run

When the wrapper was originally introduced, it used to pass the list of arguments to the tests as an array.

For some reasons, it got changed in https://github.com/iovisor/bcc/commit/7009b559f390292b1ee4b3970aca88b2272c52fd#diff-29e66e11b6682a5b66d214c108dd3c351a557bc884b64946af004e0e3195d209

This diff, re-introduces passing the list of arguments as an array (`$@`).

Also, it needs to be double-quoted in order to be able to handle space in test names.

Before:
```
$ docker run -ti \
                    --privileged \
                    --network=host \
                    --pid=host \
                    -v $(pwd):/bcc \
                    -v /sys/kernel/debug:/sys/kernel/debug:rw \
                    -v /lib/modules:/lib/modules:ro \
                    -v /usr/src:/usr/src:ro \
                    -e CTEST_OUTPUT_ON_FAILURE=1 \
                    bcc-docker \
                    /bin/bash -c \
                    '/bcc/build/tests/wrapper.sh \
                        c_test_all sudo /bcc/build/tests/cc/test_libbcc "test prob*"'
===============================================================================
No tests ran
```

After:
```
$ docker run -ti \
                    --privileged \
                    --network=host \
                    --pid=host \
                    -v $(pwd):/bcc \
                    -v /sys/kernel/debug:/sys/kernel/debug:rw \
                    -v /lib/modules:/lib/modules:ro \
                    -v /usr/src:/usr/src:ro \
                    -e CTEST_OUTPUT_ON_FAILURE=1 \
                    bcc-docker \
                    /bin/bash -c \
                    '/bcc/build/tests/wrapper.sh \
                        c_test_all sudo /bcc/build/tests/cc/test_libbcc "test prob*"'
===============================================================================
All tests passed (15 assertions in 2 test cases)

```

Also tested `namespace` and `simple` kinds:
```
$ docker run -ti \
                    --privileged \
                    --network=host \
                    --pid=host \
                    -v $(pwd):/bcc \
                    -v /sys/kernel/debug:/sys/kernel/debug:rw \
                    -v /lib/modules:/lib/modules:ro \
                    -v /usr/src:/usr/src:ro \
                    -e CTEST_OUTPUT_ON_FAILURE=1 \
                    bcc-docker \
                    /bin/bash -c \
                    '/bcc/build/tests/wrapper.sh \
                        c_test_all simple /bcc/build/tests/cc/test_libbcc "test prob*"'
===============================================================================
All tests passed (15 assertions in 2 test cases)

[16:08:12] chantra@focal:bcc git:(test_wrapper_fix) $ docker run -ti \
                    --privileged \
                    --network=host \
                    --pid=host \
                    -v $(pwd):/bcc \
                    -v /sys/kernel/debug:/sys/kernel/debug:rw \
                    -v /lib/modules:/lib/modules:ro \
                    -v /usr/src:/usr/src:ro \
                    -e CTEST_OUTPUT_ON_FAILURE=1 \
                    bcc-docker \
                    /bin/bash -c \
                    '/bcc/build/tests/wrapper.sh \
                        c_test_all namespace /bcc/build/tests/cc/test_libbcc "test prob*"'
Actual changes:
tx-checksumming: off
        tx-checksum-ip-generic: off
        tx-checksum-sctp: off
tcp-segmentation-offload: off
        tx-tcp-segmentation: off [requested on]
        tx-tcp-ecn-segmentation: off [requested on]
        tx-tcp-mangleid-segmentation: off [requested on]
        tx-tcp6-segmentation: off [requested on]
open(/sys/kernel/debug/tracing/uprobe_events): No such file or directory

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test_libbcc is a Catch v1.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
test probing running Ruby process in namespaces
  in separate mount namespace
-------------------------------------------------------------------------------
/bcc/tests/cc/test_usdt_probes.cc:351
...............................................................................

/bcc/tests/cc/test_usdt_probes.cc:374: FAILED:
  REQUIRE( res.ok() )
with expansion:
  false

ioctl(PERF_EVENT_IOC_DISABLE) failed: Bad file descriptor
close perf event FD failed: Bad file descriptor
open(/sys/kernel/debug/tracing/uprobe_events): No such file or directory
Failed to detach all probes on destruction:
Failed to detach uprobe event p__proc_64889_root_usr_local_bin_ruby_0x453b0_64889: Unable to detach uprobe p__proc_64889_root_usr_local_bin_ruby_0x453b0_64889

open(/sys/kernel/debug/tracing/uprobe_events): No such file or directory
-------------------------------------------------------------------------------
test probing running Ruby process in namespaces
  in separate mount namespace and separate PID namespace
-------------------------------------------------------------------------------
/bcc/tests/cc/test_usdt_probes.cc:351
...............................................................................

/bcc/tests/cc/test_usdt_probes.cc:400: FAILED:
  REQUIRE( res.ok() )
with expansion:
  false

ioctl(PERF_EVENT_IOC_DISABLE) failed: Bad file descriptor
close perf event FD failed: Bad file descriptor
open(/sys/kernel/debug/tracing/uprobe_events): No such file or directory
Failed to detach all probes on destruction:
Failed to detach uprobe event p__proc_64891_root_usr_local_bin_ruby_0x453b0_64891: Unable to detach uprobe p__proc_64891_root_usr_local_bin_ruby_0x453b0_64891

===============================================================================
test cases:  2 |  1 passed | 1 failed as expected
assertions: 13 | 11 passed | 2 failed as expected

```