RFC V2 [2/2] test-in-container
Commit Message
* nss/tst-nss-test3.c: Convert to test-in-container.
* nss/tst-nss-test3.root/: New.
Comments
On 02/27/2018 09:34 PM, DJ Delorie wrote:
> diff --git a/nss/Makefile b/nss/Makefile
> index a5cd2aacae..60a28a1519 100644
> --- a/nss/Makefile
> +++ b/nss/Makefile
> @@ -55,11 +55,13 @@ tests-internal = tst-field
> tests = test-netdb test-digits-dots tst-nss-getpwent bug17079 \
> tst-nss-test1 \
> tst-nss-test2 \
> - tst-nss-test3 \
> tst-nss-test4 \
> tst-nss-test5
> xtests = bug-erange
>
> +tests-container = \
> + tst-nss-test3
> +
> diff --git a/nss/tst-nss-test3.root/files.txt b/nss/tst-nss-test3.root/files.txt
> new file mode 100644
> index 0000000000..a10beb1e6c
> --- /dev/null
> +++ b/nss/tst-nss-test3.root/files.txt
> @@ -0,0 +1,2 @@
> +cp $B/nss/libnss_test1.so $L/libnss_test1.so.2
> +cp $B/nss/libnss_test2.so $L/libnss_test2.so.2
I like this interface for writing tests, but it doesn't quite work at
present: the makefile doesn't know about the test dependency on
libnss_test1.so.2 and libnss_test2.so.2, so you get spurious failures at
high concurrency levels.
I'm not sure what the proper remedy is here. Should we auto-generate a
makefile fragment from the file copy instructions? Should these
instructions be included in the makefile instead?
Thanks,
Florian
@@ -55,11 +55,13 @@ tests-internal = tst-field
tests = test-netdb test-digits-dots tst-nss-getpwent bug17079 \
tst-nss-test1 \
tst-nss-test2 \
- tst-nss-test3 \
tst-nss-test4 \
tst-nss-test5
xtests = bug-erange
+tests-container = \
+ tst-nss-test3
+
# Tests which need libdl
ifeq (yes,$(build-shared))
tests += tst-nss-files-hosts-erange
@@ -107,7 +107,11 @@ do_test (void)
int i;
struct group *g = NULL;
- __nss_configure_lookup ("group", "test1");
+/* Previously we used __nss_configure_lookup to isolate the test
+ from the host environment and to get it to lookup from our new
+ test1 NSS service module, but now this test is run in a different
+ root filesystem via the test-container support and we directly
+ configure the use of the test1 NSS service. */
setgrent ();
new file mode 100644
@@ -0,0 +1 @@
+group test1
new file mode 100644
@@ -0,0 +1,2 @@
+cp $B/nss/libnss_test1.so $L/libnss_test1.so.2
+cp $B/nss/libnss_test2.so $L/libnss_test2.so.2