Issue while testing freebsd Suite for ZFS.

Alan Somers asomers at freebsd.org
Tue Oct 25 14:59:39 UTC 2016


On Tue, Oct 25, 2016 at 4:38 AM, Prasan <gc.prasan at gmail.com> wrote:
> We have a stripped version on freebsd for our NAS appliance. We are in the
> process of porting our NAS appliance to freeBSD 10.3 from current freeBSD
> 8.0. Since I was not able to compile on the NAS machine. Tried the below
> things to compile on the build server machine and copy the binaries to NAS
> appliance.
>
> Copied the source into home directory in porridge "/usr/home/pkumar/zfsd/"
>
> [pkumar at porridge /home/pkumar]$ svnlite co
> https://svn.freebsd.org/base/projects/zfsd zfsd/


In general, you can expect a lot of rough edges trying to pull stuff
in from project branches.  It is not for the faint of heart.  If all
you want is zfsd, then you may be better served by porting your
appliance to FreeBSD 11.0, which has zfsd (but not the ZFS test
suite).  Also, note that the zfsd branch is branched from CURRENT, not
stable/10.  Some stuff may not work on stable/10 out of the box, for
example Makefile variables.


>
>
> [pkumar at porridge ~/zfsd/head/tests/sys/cddl/zfs/tests]$ sudo make all
> install
> ===> acl (all)
> ===> acl/cifs (all)
> ===> acl/trivial (all)
> ===> acl/nontrivial (all)
> ===> atime (all)
> ===> bootfs (all)
> ===> cache (all)
> ===> cachefile (all)
> ===> clean_mirror (all)
> ===> clean_mirror/assertion_001 (all)
> ===> clean_mirror/assertion_002 (all)
> ===> clean_mirror/assertion_003 (all)
> ===> clean_mirror/assertion_004 (all)
> ===> cli_root (all)
> ===> cli_root/zdb (all)
> ===> cli_root/zfs (all)
> ===> cli_root/zfs_clone (all)
> ===> cli_root/zfs_copies (all)
> ..
> ..
> ===> zvol/zvol_swap (all)
> ===> zvol/zvol_misc (all)
> ===> zvol/zvol_cli (all)
> ===> zvol_thrash (all)
> install  -o root  -g wheel -m 444  Kyuafile
>  /usr/tests/sys/cddl/zfs/tests/Kyuafile
> ===> acl (install)
> install  -o root  -g wheel -m 444  Kyuafile
>  /usr/tests/sys/cddl/zfs/tests/acl/Kyuafile
> install  -o root -g wheel  -m 444
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/acl/acl.cfg
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/acl/acl_common.kshlib
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/acl/cleanup.ksh
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/acl/setup.ksh
> /usr/tests/sys/cddl/zfs/tests/acl/
> ===> acl/cifs (install)
> install  -o root  -g wheel -m 555  cifs_test
>  /usr/tests/sys/cddl/zfs/tests/acl/cifs/cifs_test
> install  -o root  -g wheel -m 444  Kyuafile
>  /usr/tests/sys/cddl/zfs/tests/acl/cifs/Kyuafile
> install  -o root -g wheel  -m 444
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/acl/cifs/cifs.kshlib
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/acl/cifs/cifs_attr_001_pos.ksh
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/acl/cifs/cifs_attr_002_pos.ksh
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/acl/cifs/cifs_attr_003_pos.ksh
> /usr/tests/sys/cddl/zfs/tests/acl/cifs/
> ===> acl/trivial (install)
> install  -o root  -g wheel -m 555  trivial_test
>  /usr/tests/sys/cddl/zfs/tests/acl/trivial/trivial_test
> install  -o root  -g wheel -m 444  Kyuafile
>  /usr/tests/sys/cddl/zfs/tests/acl/trivial/Kyuafile
> ..
> ..
> vol_cli.cfg
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/zvol/zvol_cli/cleanup.ksh
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/zvol/zvol_cli/zvol_cli_001_pos.ksh
> /usr/tests/sys/cddl/zfs/tests/zvol/zvol_cli/
> ===> zvol_thrash (install)
> install  -o root  -g wheel -m 555  zvol_thrash_test
>  /usr/tests/sys/cddl/zfs/tests/zvol_thrash/zvol_thrash_test
> install  -o root  -g wheel -m 444  Kyuafile
>  /usr/tests/sys/cddl/zfs/tests/zvol_thrash/Kyuafile
> install  -o root -g wheel  -m 444
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/zvol_thrash/setup.ksh
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/zvol_thrash/cleanup.ksh
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/zvol_thrash/zvol_thrash.cfg
> /usr/home/pkumar/zfsd/head/tests/sys/cddl/zfs/tests/zvol_thrash/zvol_thrash_001_pos.ksh
> /usr/tests/sys/cddl/zfs/tests/zvol_thrash/
> [pkumar at porridge ~/zfsd/head/tests/sys/cddl/zfs/tests]$
> ----------------------------------------------------------------------------------------------------------------
>
> Could see that the binaries are getting installed into the directory
> "/usr/tests/sys/cddl/zfs/tests/". Which is the default execution path for
> the tests.
>
> So, on NAS machine too, created a path "/usr/tests/" and copied all the
> files and test binaries into it.
> ---------------
> [pkumar at porridge ~/zfsd/head/tests/sys/cddl/zfs/tests]$ sudo scp -r
> /usr/tests/* support at NAS-box:/usr/tests/
> ---------------
>
> cc128# cd /usr/tests/
> cc128# ls
> Kyuafile                Makefile.depend         etc                     sys
> Makefile                README                  freebsd_test_suite
> cc128#
> cc128#
> cc128# kyua list
> kyua: E: Load of 'Kyuafile' failed: Failed to load Lua file 'Kyuafile':
> Kyuafile:49: Load of 'sys/Kyuafile' failed: Failed to load Lua file
> 'sys/Kyuafile': sys/Kyuafile:8: Load of 'sys/aio/Kyuafile' failed: File
> 'sys/aio/Kyuafile' not found.

This is a problem with your 10.3 install, not the zfsd branch.  That
file should exist in 10.3.

> cc128#
> cc128# kyua test -k sys/cddl/zfs/tests/mv_files/Kyuafile
> mv_files_test:__test_cases_list__  ->    [0.002s]

You need to install atf-ksh93.  In the zfsd project branch, cd to
libexec/atf/atf-ksh93/ and do make; make install;

>
> Results file id is
> usr_tests_sys_cddl_zfs_tests_mv_files.20161025-100924-886426
> Results saved to
> /usr/home/support/.kyua/store/results.usr_tests_sys_cddl_zfs_tests_mv_files.20161025-100924-886426.db
>
> 0/1 passed (1 failed)
> cc128#
> ---------------------------------
>
> The error is "broken: Cannot find test program" but, when we check the
> "Kyuafile" in path for "mv_files", it has the program "mv_files_test". The
> program file too exists in the path.
>
>
> cc128# cat sys/cddl/zfs/tests/mv_files/Kyuafile
> -- Automatically generated by bsd.test.mk.
>
> syntax(2)
>
> test_suite("FreeBSD")
>
> atf_test_program{name="mv_files_test", }
> cc128#
> cc128#
> cc128# cd sys/cddl/zfs/tests/mv_files/
> cc128# pwd
> /usr/tests/sys/cddl/zfs/tests/mv_files
> cc128#
> cc128# ls
> Kyuafile                mv_files.cfg            mv_files_common.kshlib
>  setup.ksh
> Makefile                mv_files_001_pos.ksh    mv_files_test
> cleanup.ksh             mv_files_002_pos.ksh    mv_files_test.sh
> cc128#
>
> --------------------------------------------------------
>
> When tried to list the tests in the path (i.e., in the Kyuafile in the
> directory), it doesn't list the test cases, which are 'mv_files_001_pos'
> and 'mv_files_002_pos' for test program in this path.
>
> cc128# pwd
> /usr/tests/sys/cddl/zfs/tests/mv_files
> cc128#
> cc128# kyua list
> mv_files_test:__test_cases_list__
> cc128#
>
> -----------------------------------------
>
> This looks like an integration issue. Not sure about how to resolve it.
>
> When I move to a upper directory and try to compile, it fails with below
> errors,
> ------------------------------------------------
> [pkumar at porridge ~/zfsd/head/tests/sys]$ pwd
> /usr/home/pkumar/zfsd/head/tests/sys
> [pkumar at porridge ~/zfsd/head/tests/sys]$
>
> [pkumar at porridge ~/zfsd/head/tests/sys]$ sudo make all install
> ===> pjdfstest (all)
> ===> pjdfstest/pjdfstest (all)
> ===> pjdfstest/tests (all)
> ===> pjdfstest/tests/chflags (all)
> ===> pjdfstest/tests/chmod (all)
> ===> pjdfstest/tests/chown (all)
> ===> pjdfstest/tests/ftruncate (all)
> ===> pjdfstest/tests/granular (all)
> ===> pjdfstest/tests/link (all)
> ===> pjdfstest/tests/mkdir (all)
> ===> pjdfstest/tests/mkfifo (all)
> ===> pjdfstest/tests/mknod (all)
> ===> pjdfstest/tests/open (all)
> ===> pjdfstest/tests/rename (all)
> ===> pjdfstest/tests/rmdir (all)
> ===> pjdfstest/tests/symlink (all)
> ===> pjdfstest/tests/truncate (all)
> ===> pjdfstest/tests/unlink (all)
> ===> acl (all)
> ===> aio (all)
> (cd /usr/home/pkumar/zfsd/head/tests/sys/aio &&
>  DEPENDFILE=.depend.aio_test  NO_SUBDIR=1 make -f
> /usr/home/pkumar/zfsd/head/tests/sys/aio/Makefile _RECURSING_PROGS=t
>  PROG=aio_test )
> cc -O2 -pipe -I/usr/home/pkumar/zfsd/head/tests   -g -MD -MP
> -MF.depend.aio_test.aio_test.o -MTaio_test.o -std=gnu99 -fstack-protector
> -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter
> -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type
> -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter
> -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls
> -Wold-style-definition -Wno-pointer-sign -Wmissing-variable-declarations
> -Wthread-safety -Wno-empty-body -Wno-string-plus-int
> -Wno-unused-const-variable  -Qunused-arguments  -c
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c -o aio_test.o
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:106:2: error: implicit
> declaration of function 'ATF_REQUIRE_MSG'
>       is invalid in C99 [-Werror,-Wimplicit-function-declaration]
>         ATF_REQUIRE_MSG(signal(SIGALRM, aio_timeout_signal) != SIG_ERR,
>         ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:210:2: error: implicit
> declaration of function 'atf_tc_skip' is
>       invalid in C99 [-Werror,-Wimplicit-function-declaration]
>         ATF_REQUIRE_KERNEL_MODULE("aio");
>         ^
> /usr/home/pkumar/zfsd/head/tests/freebsd_test_suite/macros.h:50:3: note:
> expanded from macro
>       'ATF_REQUIRE_KERNEL_MODULE'
>                 atf_tc_skip("module %s could not be resolved: %s",      \
>                 ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:224:5: error: implicit
> declaration of function 'atf_tc_fail' is
>       invalid in C99 [-Werror,-Wimplicit-function-declaration]
>                                 atf_tc_fail("aio_write timed out");
>                                 ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:224:5: note: did you
> mean 'atf_tc_skip'?
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:210:2: note:
> 'atf_tc_skip' declared here
>         ATF_REQUIRE_KERNEL_MODULE("aio");
>         ^
> /usr/home/pkumar/zfsd/head/tests/freebsd_test_suite/macros.h:50:3: note:
> expanded from macro
>       'ATF_REQUIRE_KERNEL_MODULE'
>                 atf_tc_skip("module %s could not be resolved: %s",      \
>                 ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:337:1: error: type
> specifier missing, defaults to 'int'
>       [-Werror,-Wimplicit-int]
> ATF_TC_WITHOUT_HEAD(aio_file_test);
> ^~~~~~~~~~~~~~~~~~~
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:337:21: error: a
> parameter list without types is only allowed in
>       a function definition
> ATF_TC_WITHOUT_HEAD(aio_file_test);
>                     ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:338:1: error: type
> specifier missing, defaults to 'int'
>       [-Werror,-Wimplicit-int]
> ATF_TC_BODY(aio_file_test, tc)
> ^~~~~~~~~~~
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:338:1: error: no
> previous prototype for function 'ATF_TC_BODY'
>       [-Werror,-Wmissing-prototypes]
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:346:2: error: implicit
> declaration of function 'atf_libc_error'
>       is invalid in C99 [-Werror,-Wimplicit-function-declaration]
>         ATF_REQUIRE_UNSAFE_AIO();
>         ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/local.h:50:4: note: expanded from
> macro 'ATF_REQUIRE_UNSAFE_AIO'
>                         atf_libc_error(errno,                           \
>                         ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:338:13: error: unused
> parameter 'aio_file_test'
>       [-Werror,-Wunused-parameter]
> ATF_TC_BODY(aio_file_test, tc)
>             ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:338:28: error: unused
> parameter 'tc' [-Werror,-Wunused-parameter]
> ATF_TC_BODY(aio_file_test, tc)
>                            ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:384:1: error: type
> specifier missing, defaults to 'int'
>       [-Werror,-Wimplicit-int]
> ATF_TC_WITHOUT_HEAD(aio_fifo_test);
> ^~~~~~~~~~~~~~~~~~~
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:384:21: error: a
> parameter list without types is only allowed in
>       a function definition
> ATF_TC_WITHOUT_HEAD(aio_fifo_test);
>                     ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:385:1: error: type
> specifier missing, defaults to 'int'
>       [-Werror,-Wimplicit-int]
> ATF_TC_BODY(aio_fifo_test, tc)
> ^~~~~~~~~~~
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:385:1: error:
> redefinition of 'ATF_TC_BODY'
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:338:1: note: previous
> definition is here
> ATF_TC_BODY(aio_file_test, tc)
> ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:455:1: error: type
> specifier missing, defaults to 'int'
>       [-Werror,-Wimplicit-int]
> ATF_TC_WITHOUT_HEAD(aio_unix_socketpair_test);
> ^~~~~~~~~~~~~~~~~~~
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:455:21: error: a
> parameter list without types is only allowed in
>       a function definition
> ATF_TC_WITHOUT_HEAD(aio_unix_socketpair_test);
>                     ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:456:1: error: type
> specifier missing, defaults to 'int'
>       [-Werror,-Wimplicit-int]
> ATF_TC_BODY(aio_unix_socketpair_test, tc)
> ^~~~~~~~~~~
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:478:2: error: implicit
> declaration of function 'ATF_REQUIRE' is
>       invalid in C99 [-Werror,-Wimplicit-function-declaration]
>         ATF_REQUIRE(ru_after.ru_msgsnd == ru_before.ru_msgsnd + 1);
>         ^
> /usr/home/pkumar/zfsd/head/tests/sys/aio/aio_test.c:505:1: error: type
> specifier missing, defaults to 'int'
>       [-Werror,-Wimplicit-int]
> ATF_TC_WITHOUT_HEAD(aio_pty_test);
> ^~~~~~~~~~~~~~~~~~~
> fatal error: too many errors emitted, stopping now [-ferror-limit=]
> 20 errors generated.
> *** Error code 1
>
> Stop.
> make[2]: stopped in /usr/home/pkumar/zfsd/head/tests/sys/aio
> *** Error code 1
>
> Stop.
> make[1]: stopped in /usr/home/pkumar/zfsd/head/tests/sys/aio
> *** Error code 1
>
> Stop.
> make: stopped in /usr/home/pkumar/zfsd/head/tests/sys
> [pkumar at porridge ~/zfsd/head/tests/sys]$
> ---------------------------------------------------------------------------------------------------

You're trying to compile CURRENT code on a stable/10 machine.  This is
not guaranteed to work.  But that directory _does_ exist in
10.3-RELEASE.  Did you install the tests.txz release set when you
installed that machine?

>
> Can someone please help me out. I find very less documentation regarding
> the test suite.
>
> Thanks,
> --Prasanna


More information about the freebsd-testing mailing list