From ad7f1757c03122506525c90d3d519a38aa1ceac2 Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Wed, 19 Mar 2014 09:15:59 -0300 Subject: [PATCH] Add test for depmod using search dirs with same prefix Test depmod with search dirs "foo" and "foobar". Previously to 49b33c1 ("depmod: do not allow partial matches with "search" directive") we were failing this test due to matching the prefix without checking if it's the full dir name. We are adding 2 tests here in order to catch the case we only pass the test due to processing the directories in a favourable order. --- .../etc/depmod.d/search.conf | 1 + .../lib/modules/4.4.4/correct-modules.dep | 1 + .../lib/modules/4.4.4/foo/md5.ko.gz | Bin 0 -> 1918 bytes .../lib/modules/4.4.4/foobar/md5.ko.gz | Bin 0 -> 1918 bytes .../etc/depmod.d/search.conf | 1 + .../lib/modules/4.4.4/correct-modules.dep | 1 + .../lib/modules/4.4.4/foo/md5.ko.gz | Bin 0 -> 1918 bytes .../lib/modules/4.4.4/foobar/md5.ko.gz | Bin 0 -> 1918 bytes testsuite/test-depmod.c | 55 ++++++++++++++++++ 9 files changed, 59 insertions(+) create mode 100644 testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/etc/depmod.d/search.conf create mode 100644 testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/correct-modules.dep create mode 100644 testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/md5.ko.gz create mode 100644 testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/md5.ko.gz create mode 100644 testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/etc/depmod.d/search.conf create mode 100644 testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/correct-modules.dep create mode 100644 testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foo/md5.ko.gz create mode 100644 testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foobar/md5.ko.gz diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/etc/depmod.d/search.conf b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/etc/depmod.d/search.conf new file mode 100644 index 00000000..d43973e9 --- /dev/null +++ b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/etc/depmod.d/search.conf @@ -0,0 +1 @@ +search foobar foo built-in diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/correct-modules.dep b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/correct-modules.dep new file mode 100644 index 00000000..7cac9813 --- /dev/null +++ b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/correct-modules.dep @@ -0,0 +1 @@ +foobar/md5.ko.gz: diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/md5.ko.gz b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/md5.ko.gz new file mode 100644 index 0000000000000000000000000000000000000000..cf5ab6d83fe4405ae394f74f1c0df19f8a068f2a GIT binary patch literal 1918 zc-jGe2Z8t>iwFqUJ{nU318rnAE^BW9?O0oE8$}e|b*$i~RqeK+M7+8{T4JPHcAo*1 z#!HfVE!@hjn1#%jwt4c^wkq}5g z0}>?_&;pfGP@&<@?rgl->@4b~ArABz}2e_x^{Eof!{IZTjZk;l`gDjO|R~ziwZp8gQ}q zbfv0+M)c-qm#TrLYhNFKNkBhT1GgX8v%w`)1AW+X-&j&D9_N}vHGiSJ8kzuW0rj|q z@?OV2P?|t-f#g6ofouWEf%JlG0oe-D3(^m=6{G;t4>Al=0ND#N46<*`g0IKbt^SNOd=`hxG~_e4(Mqzk2=9oP?@EPdbZ{=5_YF0kXB_g@xJpwIdAcVH13Npa|_ z&`1t4aYjHp#(DR*Av7VlPYWZ1ezoxsIv+xpNWZ|Kbgex&Vs{FtYy7})7rG*#G3Oen zTBRBCrAvOHH0BSY#%7@$IUPiMnjwhDI98zdkuR|V-H%LQ1^OSE#0n%J@+(##1Cc+l z(yDUurRnx3Ugk%(SNPKT_R-0Dp;Tdo(TRG2?HU)##c}9W2>qzVSNg=^t31j-#_!`F z=c6zgjtK5^LaExPR{wM^c|^Z?FsoohO=@ks}X5x5~lqFy@Q3i3kR^z<~btFos$T#Wzy z9yO9f2hH8rwBNvKKc^Gyq>bkUBZy6`Ymbqm!hqos3Fdj;nr2~mz0 zq`V^KvTZv$H*-5gS&pSdu2V{hvcmD{RIVT?0~sbQ#l@^Fwgti=CL!j_Dmci%DRaz1 zi}J>#3rlb=rp0JFHk2zW%)(20>#a^KBe$_v*IjR(5Svi?2WESDydhRWW@W=B*i|0R)x%v^7 z(P&bHVIPV{ng6x)66rGN*DFhA*0%X)z{??uFZVj$Y6G&!Ja*_>!k$a0l%0> z5eF5bN?A!UK8u4h&#-bx*qvun{d17d82v;V3>Ln zo+t8^y4kqPWaqJHQ?*;6$uK!wG?Ew{q`ryBZ4~~Mq|uco+i?w|A+;Dy#@axq)qeqZ6S?5H4lG^;{PG>Z!zHx({n#1{tAhI&=CI;i})1^ z{{(5YVhY&2lRHHGP1B4yN(Ll9kN+?w{?=7w91QUF5RgALa2yLtTICYYDvAEx;0@&k)D)%X|4zrrGRqknZCf2+BJ%O50vuaU-Y zhTokQ`CCHaKYEKMd)WE;84|-?@cV08D?9~%mxABLTH^-|IA_3-0bgst|EAz>n{_(^ z1>a?}j^{-KzRrNZXS3$rT4!zlP@T2C{w^#veQTB(@^;T6?VAnuw0Yw&;eOM4rQ^p; z^GC-ycJ}+N<6+zN=c|L#j*HSx3nd;eCH?`nhTm!64IA*g4Y)oZFurDidx$#AF961E z6x>e1>nXT{f-j-qODXs=3cj3zyD0by3ck|vduL~Un>ORxo~xE0pJBdXTpz!LVV{Qa zVh6jLJEMl{Jm0Jea((AjqX1VAKJ<{QG;*B>fZ-fu zbk?r}o{HjdjLR1D`Xjk*GF%$rPRtlv-lfrQ=w{!1k$bd%0P;2S_4gP6 E03a95IRF3v literal 0 Hc-jL100001 diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/md5.ko.gz b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/md5.ko.gz new file mode 100644 index 0000000000000000000000000000000000000000..cf5ab6d83fe4405ae394f74f1c0df19f8a068f2a GIT binary patch literal 1918 zc-jGe2Z8t>iwFqUJ{nU318rnAE^BW9?O0oE8$}e|b*$i~RqeK+M7+8{T4JPHcAo*1 z#!HfVE!@hjn1#%jwt4c^wkq}5g z0}>?_&;pfGP@&<@?rgl->@4b~ArABz}2e_x^{Eof!{IZTjZk;l`gDjO|R~ziwZp8gQ}q zbfv0+M)c-qm#TrLYhNFKNkBhT1GgX8v%w`)1AW+X-&j&D9_N}vHGiSJ8kzuW0rj|q z@?OV2P?|t-f#g6ofouWEf%JlG0oe-D3(^m=6{G;t4>Al=0ND#N46<*`g0IKbt^SNOd=`hxG~_e4(Mqzk2=9oP?@EPdbZ{=5_YF0kXB_g@xJpwIdAcVH13Npa|_ z&`1t4aYjHp#(DR*Av7VlPYWZ1ezoxsIv+xpNWZ|Kbgex&Vs{FtYy7})7rG*#G3Oen zTBRBCrAvOHH0BSY#%7@$IUPiMnjwhDI98zdkuR|V-H%LQ1^OSE#0n%J@+(##1Cc+l z(yDUurRnx3Ugk%(SNPKT_R-0Dp;Tdo(TRG2?HU)##c}9W2>qzVSNg=^t31j-#_!`F z=c6zgjtK5^LaExPR{wM^c|^Z?FsoohO=@ks}X5x5~lqFy@Q3i3kR^z<~btFos$T#Wzy z9yO9f2hH8rwBNvKKc^Gyq>bkUBZy6`Ymbqm!hqos3Fdj;nr2~mz0 zq`V^KvTZv$H*-5gS&pSdu2V{hvcmD{RIVT?0~sbQ#l@^Fwgti=CL!j_Dmci%DRaz1 zi}J>#3rlb=rp0JFHk2zW%)(20>#a^KBe$_v*IjR(5Svi?2WESDydhRWW@W=B*i|0R)x%v^7 z(P&bHVIPV{ng6x)66rGN*DFhA*0%X)z{??uFZVj$Y6G&!Ja*_>!k$a0l%0> z5eF5bN?A!UK8u4h&#-bx*qvun{d17d82v;V3>Ln zo+t8^y4kqPWaqJHQ?*;6$uK!wG?Ew{q`ryBZ4~~Mq|uco+i?w|A+;Dy#@axq)qeqZ6S?5H4lG^;{PG>Z!zHx({n#1{tAhI&=CI;i})1^ z{{(5YVhY&2lRHHGP1B4yN(Ll9kN+?w{?=7w91QUF5RgALa2yLtTICYYDvAEx;0@&k)D)%X|4zrrGRqknZCf2+BJ%O50vuaU-Y zhTokQ`CCHaKYEKMd)WE;84|-?@cV08D?9~%mxABLTH^-|IA_3-0bgst|EAz>n{_(^ z1>a?}j^{-KzRrNZXS3$rT4!zlP@T2C{w^#veQTB(@^;T6?VAnuw0Yw&;eOM4rQ^p; z^GC-ycJ}+N<6+zN=c|L#j*HSx3nd;eCH?`nhTm!64IA*g4Y)oZFurDidx$#AF961E z6x>e1>nXT{f-j-qODXs=3cj3zyD0by3ck|vduL~Un>ORxo~xE0pJBdXTpz!LVV{Qa zVh6jLJEMl{Jm0Jea((AjqX1VAKJ<{QG;*B>fZ-fu zbk?r}o{HjdjLR1D`Xjk*GF%$rPRtlv-lfrQ=w{!1k$bd%0P;2S_4gP6 E03a95IRF3v literal 0 Hc-jL100001 diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/etc/depmod.d/search.conf b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/etc/depmod.d/search.conf new file mode 100644 index 00000000..ddf40646 --- /dev/null +++ b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/etc/depmod.d/search.conf @@ -0,0 +1 @@ +search foo foobar built-in diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/correct-modules.dep b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/correct-modules.dep new file mode 100644 index 00000000..346a257d --- /dev/null +++ b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/correct-modules.dep @@ -0,0 +1 @@ +foo/md5.ko.gz: diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foo/md5.ko.gz b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foo/md5.ko.gz new file mode 100644 index 0000000000000000000000000000000000000000..cf5ab6d83fe4405ae394f74f1c0df19f8a068f2a GIT binary patch literal 1918 zc-jGe2Z8t>iwFqUJ{nU318rnAE^BW9?O0oE8$}e|b*$i~RqeK+M7+8{T4JPHcAo*1 z#!HfVE!@hjn1#%jwt4c^wkq}5g z0}>?_&;pfGP@&<@?rgl->@4b~ArABz}2e_x^{Eof!{IZTjZk;l`gDjO|R~ziwZp8gQ}q zbfv0+M)c-qm#TrLYhNFKNkBhT1GgX8v%w`)1AW+X-&j&D9_N}vHGiSJ8kzuW0rj|q z@?OV2P?|t-f#g6ofouWEf%JlG0oe-D3(^m=6{G;t4>Al=0ND#N46<*`g0IKbt^SNOd=`hxG~_e4(Mqzk2=9oP?@EPdbZ{=5_YF0kXB_g@xJpwIdAcVH13Npa|_ z&`1t4aYjHp#(DR*Av7VlPYWZ1ezoxsIv+xpNWZ|Kbgex&Vs{FtYy7})7rG*#G3Oen zTBRBCrAvOHH0BSY#%7@$IUPiMnjwhDI98zdkuR|V-H%LQ1^OSE#0n%J@+(##1Cc+l z(yDUurRnx3Ugk%(SNPKT_R-0Dp;Tdo(TRG2?HU)##c}9W2>qzVSNg=^t31j-#_!`F z=c6zgjtK5^LaExPR{wM^c|^Z?FsoohO=@ks}X5x5~lqFy@Q3i3kR^z<~btFos$T#Wzy z9yO9f2hH8rwBNvKKc^Gyq>bkUBZy6`Ymbqm!hqos3Fdj;nr2~mz0 zq`V^KvTZv$H*-5gS&pSdu2V{hvcmD{RIVT?0~sbQ#l@^Fwgti=CL!j_Dmci%DRaz1 zi}J>#3rlb=rp0JFHk2zW%)(20>#a^KBe$_v*IjR(5Svi?2WESDydhRWW@W=B*i|0R)x%v^7 z(P&bHVIPV{ng6x)66rGN*DFhA*0%X)z{??uFZVj$Y6G&!Ja*_>!k$a0l%0> z5eF5bN?A!UK8u4h&#-bx*qvun{d17d82v;V3>Ln zo+t8^y4kqPWaqJHQ?*;6$uK!wG?Ew{q`ryBZ4~~Mq|uco+i?w|A+;Dy#@axq)qeqZ6S?5H4lG^;{PG>Z!zHx({n#1{tAhI&=CI;i})1^ z{{(5YVhY&2lRHHGP1B4yN(Ll9kN+?w{?=7w91QUF5RgALa2yLtTICYYDvAEx;0@&k)D)%X|4zrrGRqknZCf2+BJ%O50vuaU-Y zhTokQ`CCHaKYEKMd)WE;84|-?@cV08D?9~%mxABLTH^-|IA_3-0bgst|EAz>n{_(^ z1>a?}j^{-KzRrNZXS3$rT4!zlP@T2C{w^#veQTB(@^;T6?VAnuw0Yw&;eOM4rQ^p; z^GC-ycJ}+N<6+zN=c|L#j*HSx3nd;eCH?`nhTm!64IA*g4Y)oZFurDidx$#AF961E z6x>e1>nXT{f-j-qODXs=3cj3zyD0by3ck|vduL~Un>ORxo~xE0pJBdXTpz!LVV{Qa zVh6jLJEMl{Jm0Jea((AjqX1VAKJ<{QG;*B>fZ-fu zbk?r}o{HjdjLR1D`Xjk*GF%$rPRtlv-lfrQ=w{!1k$bd%0P;2S_4gP6 E03a95IRF3v literal 0 Hc-jL100001 diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foobar/md5.ko.gz b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foobar/md5.ko.gz new file mode 100644 index 0000000000000000000000000000000000000000..cf5ab6d83fe4405ae394f74f1c0df19f8a068f2a GIT binary patch literal 1918 zc-jGe2Z8t>iwFqUJ{nU318rnAE^BW9?O0oE8$}e|b*$i~RqeK+M7+8{T4JPHcAo*1 z#!HfVE!@hjn1#%jwt4c^wkq}5g z0}>?_&;pfGP@&<@?rgl->@4b~ArABz}2e_x^{Eof!{IZTjZk;l`gDjO|R~ziwZp8gQ}q zbfv0+M)c-qm#TrLYhNFKNkBhT1GgX8v%w`)1AW+X-&j&D9_N}vHGiSJ8kzuW0rj|q z@?OV2P?|t-f#g6ofouWEf%JlG0oe-D3(^m=6{G;t4>Al=0ND#N46<*`g0IKbt^SNOd=`hxG~_e4(Mqzk2=9oP?@EPdbZ{=5_YF0kXB_g@xJpwIdAcVH13Npa|_ z&`1t4aYjHp#(DR*Av7VlPYWZ1ezoxsIv+xpNWZ|Kbgex&Vs{FtYy7})7rG*#G3Oen zTBRBCrAvOHH0BSY#%7@$IUPiMnjwhDI98zdkuR|V-H%LQ1^OSE#0n%J@+(##1Cc+l z(yDUurRnx3Ugk%(SNPKT_R-0Dp;Tdo(TRG2?HU)##c}9W2>qzVSNg=^t31j-#_!`F z=c6zgjtK5^LaExPR{wM^c|^Z?FsoohO=@ks}X5x5~lqFy@Q3i3kR^z<~btFos$T#Wzy z9yO9f2hH8rwBNvKKc^Gyq>bkUBZy6`Ymbqm!hqos3Fdj;nr2~mz0 zq`V^KvTZv$H*-5gS&pSdu2V{hvcmD{RIVT?0~sbQ#l@^Fwgti=CL!j_Dmci%DRaz1 zi}J>#3rlb=rp0JFHk2zW%)(20>#a^KBe$_v*IjR(5Svi?2WESDydhRWW@W=B*i|0R)x%v^7 z(P&bHVIPV{ng6x)66rGN*DFhA*0%X)z{??uFZVj$Y6G&!Ja*_>!k$a0l%0> z5eF5bN?A!UK8u4h&#-bx*qvun{d17d82v;V3>Ln zo+t8^y4kqPWaqJHQ?*;6$uK!wG?Ew{q`ryBZ4~~Mq|uco+i?w|A+;Dy#@axq)qeqZ6S?5H4lG^;{PG>Z!zHx({n#1{tAhI&=CI;i})1^ z{{(5YVhY&2lRHHGP1B4yN(Ll9kN+?w{?=7w91QUF5RgALa2yLtTICYYDvAEx;0@&k)D)%X|4zrrGRqknZCf2+BJ%O50vuaU-Y zhTokQ`CCHaKYEKMd)WE;84|-?@cV08D?9~%mxABLTH^-|IA_3-0bgst|EAz>n{_(^ z1>a?}j^{-KzRrNZXS3$rT4!zlP@T2C{w^#veQTB(@^;T6?VAnuw0Yw&;eOM4rQ^p; z^GC-ycJ}+N<6+zN=c|L#j*HSx3nd;eCH?`nhTm!64IA*g4Y)oZFurDidx$#AF961E z6x>e1>nXT{f-j-qODXs=3cj3zyD0by3ck|vduL~Un>ORxo~xE0pJBdXTpz!LVV{Qa zVh6jLJEMl{Jm0Jea((AjqX1VAKJ<{QG;*B>fZ-fu zbk?r}o{HjdjLR1D`Xjk*GF%$rPRtlv-lfrQ=w{!1k$bd%0P;2S_4gP6 E03a95IRF3v literal 0 Hc-jL100001 diff --git a/testsuite/test-depmod.c b/testsuite/test-depmod.c index fe1d502f..b6023f11 100644 --- a/testsuite/test-depmod.c +++ b/testsuite/test-depmod.c @@ -80,10 +80,65 @@ static DEFINE_TEST(depmod_search_order_simple, }, }); +#define SEARCH_ORDER_SAME_PREFIX_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-same-prefix" +static noreturn int depmod_search_order_same_prefix(const struct test *t) +{ + const char *progname = ABS_TOP_BUILDDIR "/tools/depmod"; + const char *const args[] = { + progname, + NULL, + }; + + test_spawn_prog(progname, args); + exit(EXIT_FAILURE); +} +static DEFINE_TEST(depmod_search_order_same_prefix, + .description = "check if depmod honor search order in config with same prefix", + .config = { + [TC_UNAME_R] = "4.4.4", + [TC_ROOTFS] = SEARCH_ORDER_SAME_PREFIX_ROOTFS, + }, + .output = { + .files = (const struct keyval[]) { + { SEARCH_ORDER_SAME_PREFIX_ROOTFS "/lib/modules/4.4.4/correct-modules.dep", + SEARCH_ORDER_SAME_PREFIX_ROOTFS "/lib/modules/4.4.4/modules.dep" }, + { } + }, + }); + +#define SEARCH_ORDER_SAME_PREFIX2_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-same-prefix2" +static noreturn int depmod_search_order_same_prefix2(const struct test *t) +{ + const char *progname = ABS_TOP_BUILDDIR "/tools/depmod"; + const char *const args[] = { + progname, + NULL, + }; + + test_spawn_prog(progname, args); + exit(EXIT_FAILURE); +} +static DEFINE_TEST(depmod_search_order_same_prefix2, + .description = "check if depmod honor search order in config with same prefi: " + "the same as depmod_search_order_same_prefix, but in inverse order", + .config = { + [TC_UNAME_R] = "4.4.4", + [TC_ROOTFS] = SEARCH_ORDER_SAME_PREFIX2_ROOTFS, + }, + .output = { + .files = (const struct keyval[]) { + { SEARCH_ORDER_SAME_PREFIX2_ROOTFS "/lib/modules/4.4.4/correct-modules.dep", + SEARCH_ORDER_SAME_PREFIX2_ROOTFS "/lib/modules/4.4.4/modules.dep" }, + { } + }, + }); + static const struct test *tests[] = { &sdepmod_modules_order_for_compressed, &sdepmod_search_order_simple, + &sdepmod_search_order_same_prefix, + &sdepmod_search_order_same_prefix2, NULL, }; -- 2.47.2