mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	 059ab2ddc2
			
		
	
	
		059ab2ddc2
		
	
	
	
	
		
			
			This commit adds tests that ensure that the ICP crypto_encrypt() and crypto_decrypt() produce the correct results for all implementations available on this platform. The actual ZTS scripts are simple drivers for the crypto_test program in it's "correctness" mode. This mode takes a file full of test vectors (inputs and expected outputs), runs them, and checks that the results are expected. It will run the tests for each implementation of the algorithm provided by the ICP. The test vectors are taken from Project Wycheproof, which provides a huge number of tests, including exercising many edge cases and common implementation mistakes. These tests are provided are JSON files, so a program is included here to convert them into a simpler line-based format for crypto_test to consume. crypto_test also has a "performance" mode, which will run simple benchmarks against all implementations provded by the ICP and output them for comparison. This is not used by ZTS, but is available to assist with development of new implementations of the underlying primitives. Thanks-to: Joel Low <joel@joelsplace.sg> Sponsored-by: https://despairlabs.com/sponsor/ Signed-off-by: Rob Norris <robn@despairlabs.com> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de> Reviewed-by: Attila Fülöp <attila@fueloep.org>
		
			
				
	
	
		
			147 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| scripts_zfs_tests_bindir = $(datadir)/$(PACKAGE)/zfs-tests/bin
 | |
| 
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS  = %D%/chg_usr_exec
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/clonefile
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/clone_mmap_cached
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/clone_mmap_write
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/cp_files
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/ctime
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/dir_rd_update
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/dosmode_readonly_write
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/get_diff
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/rename_dir
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/suid_write_to_file
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/truncate_test
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/zfs_diff-socket
 | |
| 
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/badsend
 | |
| %C%_badsend_LDADD = \
 | |
| 	libzfs_core.la \
 | |
| 	libzfs.la \
 | |
| 	libnvpair.la
 | |
| 
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/btree_test
 | |
| %C%_btree_test_CPPFLAGS = $(AM_CPPFLAGS) $(LIBZPOOL_CPPFLAGS)
 | |
| %C%_btree_test_LDADD = \
 | |
| 	libzpool.la \
 | |
| 	libzfs_core.la
 | |
| 
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/crypto_test
 | |
| %C%_crypto_test_SOURCES = %D%/crypto_test.c
 | |
| %C%_crypto_test_LDADD = libzpool.la
 | |
| 
 | |
| 
 | |
| if WANT_DEVNAME2DEVID
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/devname2devid
 | |
| %C%_devname2devid_CFLAGS = $(AM_CFLAGS) $(LIBUDEV_CFLAGS)
 | |
| %C%_devname2devid_LDADD = $(LIBUDEV_LIBS)
 | |
| endif
 | |
| 
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/draid
 | |
| %C%_draid_CFLAGS = $(AM_CFLAGS) $(ZLIB_CFLAGS)
 | |
| %C%_draid_LDADD = \
 | |
| 	libzpool.la \
 | |
| 	libnvpair.la
 | |
| %C%_draid_LDADD += $(ZLIB_LIBS)
 | |
| 
 | |
| dist_noinst_DATA += %D%/file/file_common.h
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/file_append %D%/file_check %D%/file_trunc %D%/file_write %D%/largest_file %D%/randwritecomp
 | |
| %C%_file_append_SOURCES   = %D%/file/file_append.c
 | |
| %C%_file_check_SOURCES    = %D%/file/file_check.c
 | |
| %C%_file_trunc_SOURCES    = %D%/file/file_trunc.c
 | |
| %C%_file_write_SOURCES    = %D%/file/file_write.c
 | |
| %C%_largest_file_SOURCES  = %D%/file/largest_file.c
 | |
| %C%_randwritecomp_SOURCES = %D%/file/randwritecomp.c
 | |
| 
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/libzfs_input_check
 | |
| %C%_libzfs_input_check_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/include/os/@ac_system_l@/zfs
 | |
| %C%_libzfs_input_check_LDADD = \
 | |
| 	libzfs_core.la \
 | |
| 	libnvpair.la
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/manipulate_user_buffer
 | |
| %C%_manipulate_user_buffer_LDADD = -lpthread
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/mkbusy %D%/mkfile %D%/mkfiles %D%/mktree
 | |
| %C%_mkfile_LDADD = $(LTLIBINTL)
 | |
| 
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/mmap_exec %D%/mmap_seek %D%/mmap_sync %D%/mmapwrite %D%/readmmap
 | |
| %C%_mmapwrite_LDADD = -lpthread
 | |
| 
 | |
| if WANT_MMAP_LIBAIO
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/mmap_libaio
 | |
| %C%_mmap_libaio_CFLAGS = $(AM_CFLAGS) $(LIBAIO_CFLAGS)
 | |
| %C%_mmap_libaio_LDADD  = $(LIBAIO_LIBS)
 | |
| endif
 | |
| 
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/nvlist_to_lua
 | |
| %C%_nvlist_to_lua_LDADD = \
 | |
| 	libzfs_core.la \
 | |
| 	libnvpair.la
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/rm_lnkcnt_zero_file
 | |
| %C%_rm_lnkcnt_zero_file_LDADD = -lpthread
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/send_doall
 | |
| %C%_send_doall_LDADD = \
 | |
| 	libzfs_core.la \
 | |
| 	libzfs.la \
 | |
| 	libnvpair.la
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/stride_dd
 | |
| %C%_stride_dd_LDADD = -lrt
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/threadsappend
 | |
| %C%_threadsappend_LDADD = -lpthread
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/ereports
 | |
| %C%_ereports_LDADD = \
 | |
| 	libnvpair.la \
 | |
| 	libzfs.la
 | |
| 
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/edonr_test %D%/skein_test \
 | |
| 	%D%/sha2_test %D%/blake3_test
 | |
| %C%_skein_test_SOURCES = %D%/checksum/skein_test.c
 | |
| %C%_sha2_test_SOURCES  = %D%/checksum/sha2_test.c
 | |
| %C%_edonr_test_SOURCES = %D%/checksum/edonr_test.c
 | |
| %C%_blake3_test_SOURCES = %D%/checksum/blake3_test.c
 | |
| %C%_skein_test_LDADD = \
 | |
| 	libicp.la \
 | |
| 	libspl.la \
 | |
| 	libspl_assert.la
 | |
| %C%_sha2_test_LDADD  = $(%C%_skein_test_LDADD)
 | |
| %C%_edonr_test_LDADD = $(%C%_skein_test_LDADD)
 | |
| %C%_blake3_test_LDADD = $(%C%_skein_test_LDADD)
 | |
| 
 | |
| if BUILD_LINUX
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/getversion
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/user_ns_exec
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/renameat2
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/statx
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/xattrtest
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/zed_fd_spill-zedlet
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/idmap_util
 | |
| 
 | |
| %C%_idmap_util_LDADD = libspl.la
 | |
| 
 | |
| dist_noinst_DATA += %D%/linux_dos_attributes/dos_attributes.h
 | |
| scripts_zfs_tests_bin_PROGRAMS  += %D%/read_dos_attributes %D%/write_dos_attributes
 | |
| %C%_read_dos_attributes_SOURCES  = %D%/linux_dos_attributes/read_dos_attributes.c
 | |
| %C%_write_dos_attributes_SOURCES = %D%/linux_dos_attributes/write_dos_attributes.c
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/randfree_file
 | |
| %C%_randfree_file_SOURCES       = %D%/file/randfree_file.c
 | |
| 
 | |
| scripts_zfs_tests_bin_PROGRAMS += %D%/file_fadvise
 | |
| %C%_file_fadvise_SOURCES  = %D%/file/file_fadvise.c
 | |
| endif
 |