Issue while testing freebsd Suite for ZFS.

Prasan gc.prasan at gmail.com
Tue Oct 25 10:38:49 UTC 2016


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/


[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.
cc128#
cc128# kyua test -k sys/cddl/zfs/tests/mv_files/Kyuafile
mv_files_test:__test_cases_list__  ->    [0.002s]

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]$
---------------------------------------------------------------------------------------------------

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