The test uses the ext4 module dependencies as the testcase, checking both the number and the names of the returned modules. Signed-off-by: Dan McGee <dan@xxxxxxxxxxxxx> --- Makefile.am | 4 +- test/test-get-dependencies.c | 52 --------- testsuite/.gitignore | 1 + .../lib/modules/4.0.20-kmod/kernel/fs/jbd2/jbd2.ko | Bin 0 -> 159175 bytes .../lib/modules/4.0.20-kmod/kernel/fs/mbcache.ko | Bin 0 -> 18431 bytes .../lib/modules/4.0.20-kmod/kernel/lib/crc16.ko | Bin 0 -> 4374 bytes .../lib/modules/4.0.20-kmod/modules.alias | 1 + .../lib/modules/4.0.20-kmod/modules.alias.bin | Bin 0 -> 12 bytes .../lib/modules/4.0.20-kmod/modules.builtin.bin | Bin 0 -> 12 bytes .../lib/modules/4.0.20-kmod/modules.dep | 4 + .../lib/modules/4.0.20-kmod/modules.dep.bin | Bin 0 -> 265 bytes .../lib/modules/4.0.20-kmod/modules.devname | 1 + .../lib/modules/4.0.20-kmod/modules.order | 7 + .../lib/modules/4.0.20-kmod/modules.softdep | 2 + .../lib/modules/4.0.20-kmod/modules.symbols | 58 ++++++++++ .../lib/modules/4.0.20-kmod/modules.symbols.bin | Bin 0 -> 2584 bytes testsuite/test-dependencies.c | 118 ++++++++++++++++++++ 17 files changed, 195 insertions(+), 53 deletions(-) delete mode 100644 test/test-get-dependencies.c create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/jbd2/jbd2.ko create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/mbcache.ko create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/crc16.ko create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.alias create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.alias.bin create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.builtin create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.builtin.bin create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.dep create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.dep.bin create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.devname create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.order create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.softdep create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols create mode 100644 testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols.bin create mode 100644 testsuite/test-dependencies.c diff --git a/Makefile.am b/Makefile.am index 53cbe1c..b65f650 100644 --- a/Makefile.am +++ b/Makefile.am @@ -164,7 +164,7 @@ testsuite_libtestsuite_la_CPPFLAGS = $(TESTSUITE_CPPFLAGS) TESTSUITE = testsuite/test-init testsuite/test-testsuite testsuite/test-loaded \ testsuite/test-modinfo testsuite/test-alias testsuite/test-new-module \ - testsuite/test-modprobe testsuite/test-blacklist + testsuite/test-modprobe testsuite/test-blacklist testsuite/test-dependencies check_PROGRAMS = $(TESTSUITE) TESTS = $(TESTSUITE) @@ -184,6 +184,8 @@ testsuite_test_modprobe_LDADD = $(TESTSUITE_LDADD) testsuite_test_modprobe_CPPFLAGS = $(TESTSUITE_CPPFLAGS) testsuite_test_blacklist_LDADD = $(TESTSUITE_LDADD) testsuite_test_blacklist_CPPFLAGS = $(TESTSUITE_CPPFLAGS) +testsuite_test_dependencies_LDADD = $(TESTSUITE_LDADD) +testsuite_test_dependencies_CPPFLAGS = $(TESTSUITE_CPPFLAGS) DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc diff --git a/test/test-get-dependencies.c b/test/test-get-dependencies.c deleted file mode 100644 index 3a7bbf2..0000000 --- a/test/test-get-dependencies.c +++ /dev/null @@ -1,52 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <stddef.h> -#include <errno.h> -#include <unistd.h> -#include <inttypes.h> -#include <string.h> -#include <libkmod.h> - - -int main(int argc, char *argv[]) -{ - const char *name; - struct kmod_ctx *ctx; - struct kmod_module *mod; - struct kmod_list *list, *l; - int err; - - printf("libkmod version %s\n", VERSION); - - if (argc < 2) { - fprintf(stderr, "ERR: Provide a module name\n"); - return EXIT_FAILURE; - } - - name = argv[1]; - - ctx = kmod_new(NULL, NULL); - if (ctx == NULL) - exit(EXIT_FAILURE); - - err = kmod_module_new_from_name(ctx, name, &mod); - if (err < 0) { - kmod_unref(ctx); - exit(EXIT_FAILURE); - } - - list = kmod_module_get_dependencies(mod); - printf("Module: %s\nDependency list:\n", name); - - kmod_list_foreach(l, list) { - struct kmod_module *m = kmod_module_get_module(l); - printf("\t%s\n", kmod_module_get_name(m)); - kmod_module_unref(m); - } - - kmod_module_unref_list(list); - kmod_module_unref(mod); - kmod_unref(ctx); - - return EXIT_SUCCESS; -} diff --git a/testsuite/.gitignore b/testsuite/.gitignore index ce1c21b..5eabe6f 100644 --- a/testsuite/.gitignore +++ b/testsuite/.gitignore @@ -4,6 +4,7 @@ /.dirstamp /test-alias /test-blacklist +/test-dependencies /test-init /test-loaded /test-modinfo diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/jbd2/jbd2.ko b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/jbd2/jbd2.ko new file mode 100644 index 0000000000000000000000000000000000000000..521c214f6c2c5de0fd353cf6889ceda7e46eeae6 GIT binary patch literal 159175 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 H;+_5h1cUjZ literal 0 HcmV?d00001 diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/mbcache.ko b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/mbcache.ko new file mode 100644 index 0000000000000000000000000000000000000000..5849fa756a0b274dc2aa6efdad6dddb4b43e7431 GIT binary patch literal 18431 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 A(*OVf literal 0 HcmV?d00001 diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/crc16.ko b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/crc16.ko new file mode 100644 index 0000000000000000000000000000000000000000..2fffdb72d5045b756692130689f1b1b63273dfef GIT binary patch literal 4374 zcmeHKd3Y2x6n|k6xyz*jqAZFWV#l^X5ww_ClvM!{MDW1vvOCa~?QZREIlM>&)QTq_ zC@Oe?2p%X39;k_kiU%T!;)N(49NsA6iOEc|J50-m`uQjMI(>P+{N6Dy$!s#^#6c(3 zLkLVm&>wP|K>-T(&-Jm>#n1*?LVek9BcFhL1`ZhkiLDbuJ5rsl-qNRijBektY0lbp zvmCnqHzG8BZOzV5%@>)jc^wA;<Sp%ABSKSOLSx02hJ`!xmh!x1(;RN$E1{`dQT2w= zE4=pqwx5Vc?PS_688~zh#O!pmDqfk1r;;V5!%7Q_gV9JLTAhd}BrS(4?PM%n0`X*~ z%C<|+f(dq2MPyt&TGG=hvWoHx^U1K%P;mI*p}|T?sHn^YD^js=buy8P#8g-E)5=xQ zo2B4PV1!oi0If$}KritIbbs<P>?c;T7jb>`I&VswkvAYuyvbJM=FnKY%3i}w&??@D zHYBg0^}H=@N8X2n#fR(z+#U`U8`vkfBl?&hLOYO;ppAHkt-}YP_xM5dK=LkH%UjXb z<ZWmv-ePNT3-moNpoQcI=qa|dA8`>BiyiD2+z0*4d(&RzCpb?0!T!W0Xcs@8_9uU# z-*`WIEcqS!ieK4Id<=9Go7ooJ9c|-1=#gYA`j%VtX!0H8i*MN1_$c%_?@W&%UqDy! z75fr*fy2aSY!f~leabu0AlZoS;$<{K?uMwim)(QMz*sS#-H*qidEBNkavvnbgX|$( zfga&0nj{aSh5URvo-Bg6cz`Xy<uFM+$)3WK(KGxadLellJ;yJlQ^@mhiFlSR#}}i= zd4^V#Ct#vj#+Kp<P$eE?OK=)J$}gamWHAgC*Rvb&>F7p2oDL&1(JlN;I+DzS5#nZc z6Fvjo!Ox|m$(;}ubJ-kx9-J*^v)l1G=r(>99Yt<MSMm@&nbg3kVg|bkp8`X~wd^{4 z8oGuLrh~}UFhERW)A5Pu3O<mYL@q~{@e^n%nF>TOMlp_7MGK3;`5(?i#w2X-(vbav zncH?MNUomhgdI*qCa0=1KF)tp-MIh7a-Yq<3djl!EG_L9>?S|y-GjZXVyh@vR8Z*r z1-r?QUzMG(BWb()Kj&HL$rW+~fR)Zvxw72!lBtYsjZ0QrW2)ncSbjVPmh>O7GWMj5 z+YN`u8*?=xRk^+$FLK|+lVekomWo9(5y&#b(tA8PE-exBSq96YIH3~p<oHxFYFnA| zcslIvKCs55(_lqY6%}?;Mt1U&706F#BGK{x&#E|Bx=}x+^?dHI);s&~`aZp<)Yb2E z10P<g^<F-_g-^Gn?)RxE1x;OITUS6UDOHXQwQlhKQdjX!{#cJM)-tH25&rmn<v?BW zLppw$HdOHy&mVuV#Jus#q^{Z;SAajBvDd>8lAXHZFVOJ|G*QJ@H8%F<{YOg78(-65 zqwY*JfR>8uZDmra%f8GIO<}cBP)j4qWv5PibpVr1<?U_8t-&soox1F)w#SC3WzeTj zm%6go^z1121A4??>lu5oAGMeFpC|3rocP1F^>2th#9yf6n|anWF!n<YprxswkxR6_ zj|Sy?h;Qr+zoqQ>b5~==euW`w>9<$9uS5=Wz1hFod25MwkdJ@;Hj-Ff@xRY=+&~v! zK%WX-TpBcy@(|tk3dQf}0Ze>_d#(`KeX4M;AG6O4-(OaR2jyd$*Z-jg+=~o2E4Vf( zP-kUTz5J`#wGGtz3LD&HwR?;JsOr~l0cczslt{p-a_yl2=*jjC1)!M^an%4c-vh2E z-8UM@&Q5MX)xAFauq%hSJ@rN?yUHM&Sv!rJOwF3ecko<2&G)**!E<#m^X`7{jh0)_ zqqQGnZ)95gF%~9%je|GHW@=_=uEgtluSE{OA@q<^H8XR|WgmIw1*<{XR>?=z!TkOj z{(6n8_fxH(D`2yfEj{yPzI!_y+*nIRZ}xg}0$RxWpS^niZri_	JAXq?`EdH9xj; z(QFClnsYI*qViZI4?SUhJuWWRy61{q+}m@Qa<3EWaOIrd!dcxthvjtlnC9yG!sD~b zp<Y{!I({vgnaNOHiuA=?rsFxwx%s<S^}?PyeRE+~se2E0j@xWtsqL1aGb$~zIQ$JN CfGt4) literal 0 HcmV?d00001 diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.alias b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.alias new file mode 100644 index 0000000..ba76e18 --- /dev/null +++ b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.alias @@ -0,0 +1 @@ +# Aliases extracted from modules themselves. diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.alias.bin b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.alias.bin new file mode 100644 index 0000000000000000000000000000000000000000..7075435f6268c4d815aec093d61e26647666ba76 GIT binary patch literal 12 TcmdnM{w17&iGh)Ufq@4A6;A>Z literal 0 HcmV?d00001 diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.builtin b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.builtin new file mode 100644 index 0000000..e69de29 diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.builtin.bin b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.builtin.bin new file mode 100644 index 0000000000000000000000000000000000000000..7075435f6268c4d815aec093d61e26647666ba76 GIT binary patch literal 12 TcmdnM{w17&iGh)Ufq@4A6;A>Z literal 0 HcmV?d00001 diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.dep b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.dep new file mode 100644 index 0000000..c4e2516 --- /dev/null +++ b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.dep @@ -0,0 +1,4 @@ +kernel/fs/mbcache.ko: +kernel/fs/ext4/ext4.ko: kernel/lib/crc16.ko kernel/fs/jbd2/jbd2.ko kernel/fs/mbcache.ko +kernel/fs/jbd2/jbd2.ko: +kernel/lib/crc16.ko: diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.dep.bin b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.dep.bin new file mode 100644 index 0000000000000000000000000000000000000000..2e89d91ff0721e5f7b2fec868b2dc5eadf333ff5 GIT binary patch literal 265 zcmdnM{w17&iGfjpf#G&hvY{CR5HJEUb9QP`UTThhPG*vRGDt!%JKu_-qQnHIfDx)7 ztyn)5C=4b*Y80?&goy#wW+kN<feD~mB;nko<izBRRG=UOPyx&iCWIZx`m7irs$t3) h5XundSTQ8$9$;YL0Vx8~dLSAZ9AIFW1mgqQ+W?NDLoNUS literal 0 HcmV?d00001 diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.devname b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.devname new file mode 100644 index 0000000..58f6d6d --- /dev/null +++ b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.devname @@ -0,0 +1 @@ +# Device nodes to trigger on-demand module loading. diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.order b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.order new file mode 100644 index 0000000..85f2778 --- /dev/null +++ b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.order @@ -0,0 +1,7 @@ +kernel/fs/mbcache.ko +kernel/fs/ext3/ext3.ko +kernel/fs/ext2/ext2.ko +kernel/fs/ext4/ext4.ko +kernel/fs/jbd/jbd.ko +kernel/fs/jbd2/jbd2.ko +kernel/lib/crc16.ko diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.softdep b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.softdep new file mode 100644 index 0000000..3cc0512 --- /dev/null +++ b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.softdep @@ -0,0 +1,2 @@ +# Soft dependencies extracted from modules themselves. +# Copy, with a .conf extension, to /etc/modprobe.d to use it with modprobe. diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols new file mode 100644 index 0000000..0f0d88c --- /dev/null +++ b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols @@ -0,0 +1,58 @@ +# Aliases for symbols, used by symbol_request(). +alias symbol:jbd2_journal_invalidatepage jbd2 +alias symbol:jbd2_journal_release_buffer jbd2 +alias symbol:jbd2_journal_init_inode jbd2 +alias symbol:jbd2__journal_restart jbd2 +alias symbol:mb_cache_entry_find_next mbcache +alias symbol:crc16 crc16 +alias symbol:mb_cache_entry_insert mbcache +alias symbol:jbd2_journal_destroy jbd2 +alias symbol:jbd2_journal_lock_updates jbd2 +alias symbol:mb_cache_entry_free mbcache +alias symbol:jbd2_log_start_commit jbd2 +alias symbol:mb_cache_entry_find_first mbcache +alias symbol:mb_cache_destroy mbcache +alias symbol:jbd2_journal_extend jbd2 +alias symbol:jbd2_journal_begin_ordered_truncate jbd2 +alias symbol:jbd2_journal_revoke jbd2 +alias symbol:jbd2_journal_get_write_access jbd2 +alias symbol:jbd2_inode_cache jbd2 +alias symbol:jbd2_journal_ack_err jbd2 +alias symbol:mb_cache_create mbcache +alias symbol:jbd2_journal_flush jbd2 +alias symbol:jbd2_journal_init_jbd_inode jbd2 +alias symbol:mb_cache_entry_alloc mbcache +alias symbol:jbd2_journal_get_undo_access jbd2 +alias symbol:jbd2_journal_get_create_access jbd2 +alias symbol:jbd2_journal_update_format jbd2 +alias symbol:crc16_table crc16 +alias symbol:jbd2_journal_wipe jbd2 +alias symbol:jbd2_journal_check_used_features jbd2 +alias symbol:mb_cache_entry_get mbcache +alias symbol:jbd2_journal_force_commit_nested jbd2 +alias symbol:jbd2_log_wait_commit jbd2 +alias symbol:jbd2_journal_stop jbd2 +alias symbol:jbd2_journal_set_triggers jbd2 +alias symbol:jbd2_journal_release_jbd_inode jbd2 +alias symbol:jbd2_journal_unlock_updates jbd2 +alias symbol:jbd2_journal_start_commit jbd2 +alias symbol:jbd2_journal_dirty_metadata jbd2 +alias symbol:jbd2_journal_force_commit jbd2 +alias symbol:mb_cache_entry_release mbcache +alias symbol:jbd2_journal_init_dev jbd2 +alias symbol:jbd2_journal_forget jbd2 +alias symbol:jbd2_journal_set_features jbd2 +alias symbol:jbd2_journal_start jbd2 +alias symbol:jbd2_journal_clear_features jbd2 +alias symbol:jbd2__journal_start jbd2 +alias symbol:mb_cache_shrink mbcache +alias symbol:jbd2_journal_clear_err jbd2 +alias symbol:jbd2_journal_file_inode jbd2 +alias symbol:jbd2_journal_restart jbd2 +alias symbol:jbd2_journal_load jbd2 +alias symbol:jbd2_journal_check_available_features jbd2 +alias symbol:jbd2_journal_abort jbd2 +alias symbol:jbd2_journal_blocks_per_page jbd2 +alias symbol:jbd2_journal_try_to_free_buffers jbd2 +alias symbol:jbd2_trans_will_send_data_barrier jbd2 +alias symbol:jbd2_journal_errno jbd2 diff --git a/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols.bin b/testsuite/rootfs/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols.bin new file mode 100644 index 0000000000000000000000000000000000000000..aa8cfc85680de041ee08790bcae03ef6b931b1b0 GIT binary patch literal 2584 zcmb_ey^9-16o1m4?&OdrA)H&`%7z#c7bZ!YB1vILXM+!h+1)2;POBYdc61+Q+62yj zfD5ZhWiaLl#BgwIWej%V+T`$+ft0Z!;KsivWmnqO>d27{%*Vcu-^}}%H~V<=&24H@ zqeCBj>~#<`p*7IgLKl91lcs}G8PSJj2B%&-5870^xf4V;XqmEO$1c&aB9{W<OY~cb zjaY>`>=#?jlx-DlpxC+c20;jfpV063Orord*m0!18z-UmRlIPJsu4Ri(!C0cV?aC+ z=(?5>z1r0#7H_C7Yd?0JilDe<cGeWT)^j)<DAMDM8ka@o|7yUyS#?J3$yhr@+=cu@ z^y7X!p~m-%r@;5i)H{11#JNSzAE+UF9ci!295w)Yy9kj{v+WXF7W14$Ws2K};1`RE z`5N@^;9Dc9P}Uiz{W2jzo^b^j>0^gO<4N+eIf2654z8r6qp){I&0ir@G$_3^7UR?h zLdN=D&Yn>7%)z&;bQp44iF^{-TDmhU6xb^Y_cB`B$~X8gGjKi=eazqTuB_&!FMBhH z>U@j?MLPgE7WKsj+H>?%9UG(pFW;Ml%<hEN{#sP}H|vbnKdHoUpvEKFq~cyn8drSX z2rB0NaktCW8c=H#>y#A*uxtInc}D{OXt_+;K_w5FVpzKVY!wt>-sHTDS{t=@(V1S4 zUByCpzw4p$O|E{C8G76Q<UZ8qp-1VIyU;o+QAYwj7t;2OT2F;`(FWw-*-xnT!$mc7 z`3|-IbO*{?)pg7&n8vl@nb@Ls)@Fqyit1W7)Ro(vj56BzSvJA^iy2j-m_I&xuS4_* z{cVRDuRGMdf_@kMZ)CF;b;SC*%+jzfiouLB8)5(D4sBe+Rs+l@LdE)pq*GpzKw5CP zsi)hXq7)@z^XnP#Y{d7r(@CoKOdP8e<y1*AR)KcTEMI~fiWEXZY7t}AIwNuu+Bg;d zgf^#MTrInKIIVvoAjZ%zm_64h#S8C7L5>l)C0XOrB36YY?=RC}CUujH+IIwFRRe#> zMRW^51FPCUu2RbBP<}Xn7YgMh<@qm1LFHIViKv!rPdw6>v;$TtY9iR7_6g{J$QtuI zna^t(UHYi+OfnFm(k{X5#|SS5ewW%?=$}sL($(|8R`IaO{=qP?@mCZM&*YFR8uH<{ MoQ2H}(-h<Bd*9ij6aWAK literal 0 HcmV?d00001 diff --git a/testsuite/test-dependencies.c b/testsuite/test-dependencies.c new file mode 100644 index 0000000..b9f9a12 --- /dev/null +++ b/testsuite/test-dependencies.c @@ -0,0 +1,118 @@ +/* + * Copyright (C) 2011-2012 ProFUSION embedded systems + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <stddef.h> +#include <errno.h> +#include <unistd.h> +#include <inttypes.h> +#include <string.h> +#include <libkmod.h> + +#include "testsuite.h" +#define TEST_UNAME "4.0.20-kmod" + +static int test_dependencies(const struct test *t) +{ + struct kmod_ctx *ctx; + struct kmod_module *mod; + struct kmod_list *list, *l; + int err; + size_t len = 0; + int crc16 = 0, mbcache = 0, jbd2 = 0; + + ctx = kmod_new(NULL, NULL); + if (ctx == NULL) + return EXIT_FAILURE; + + err = kmod_module_new_from_name(ctx, "ext4", &mod); + if (err < 0) { + kmod_unref(ctx); + return EXIT_FAILURE; + } + + list = kmod_module_get_dependencies(mod); + + kmod_list_foreach(l, list) { + struct kmod_module *m = kmod_module_get_module(l); + const char *name = kmod_module_get_name(m); + + if (strcmp(name, "crc16") == 0) + crc16 = 1; + if (strcmp(name, "mbcache") == 0) + mbcache = 1; + else if (strcmp(name, "jbd2") == 0) + jbd2 = 1; + + kmod_module_unref(m); + len++; + } + + /* crc16, mbcache, jbd2 */ + if (len != 3 || !crc16 || !mbcache || !jbd2) + return EXIT_FAILURE; + + kmod_module_unref_list(list); + kmod_module_unref(mod); + kmod_unref(ctx); + + return EXIT_SUCCESS; +} +static const struct test stest_dependencies = { + .name = "test_dependencies", + .description = "test if kmod_module_get_dependencies works", + .func = test_dependencies, + .config = { + [TC_ROOTFS] = TESTSUITE_ROOTFS "test-dependencies/", + [TC_UNAME_R] = TEST_UNAME, + }, + .need_spawn = true, +}; + +static const struct test *tests[] = { + &stest_dependencies, + NULL, +}; + +int main(int argc, char *argv[]) +{ + const struct test *t; + int arg; + size_t i; + + arg = test_init(argc, argv, tests); + if (arg == 0) + return 0; + + if (arg < argc) { + t = test_find(tests, argv[arg]); + if (t == NULL) { + fprintf(stderr, "could not find test %s\n", argv[arg]); + exit(EXIT_FAILURE); + } + + return test_run(t); + } + + for (i = 0; tests[i] != NULL; i++) { + if (test_run(tests[i]) != 0) + exit(EXIT_FAILURE); + } + + exit(EXIT_SUCCESS); +} -- 1.7.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-modules" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html