36 #
37 # Ensure multiple threads performing write appends to the same ZFS
38 # file succeed.
39 #
40 # STRATEGY:
41 # 1) Verify this is a multi-processor system
42 # 2) Create multiple threads with each appending to a file
43 # 3) Verify that the resulting file is the expected size
44 #
45
46 verify_runnable "both"
47
48 log_assert "Ensure multiple threads performing write appends to the same" \
49 "ZFS file succeed"
50
51 #
52 # $FILE_SIZE is hardcoded into threadsappend.c and is the expected
53 # size of the file after all the threads have appended to it
54 #
55 typeset -i FILE_SIZE=1310720
56 THREADSAPPEND="$STF_SUITE/tests/functional/threadsappend/threadsappend"
57 TESTFILE='testfile-threadsappend'
58
59 #
60 # This test should be run on a multi-processor system because otherwise the FS
61 # will not be concurrently used by the threads
62 #
63 NCPUS=`psrinfo | wc -l`
64 if [[ -z $NCPUS || $NCPUS -le 1 ]]; then
65 log_fail "This test should be executed on a multi-processor system."
66 fi
67
68 #
69 # zfs_threadsappend tries to append to $TESTFILE using threads
70 # so that the resulting file is $FILE_SIZE bytes in size
71 #
72 log_must $THREADSAPPEND ${TESTDIR}/${TESTFILE}
73
74 #
75 # Check the size of the resulting file
76 #
|
36 #
37 # Ensure multiple threads performing write appends to the same ZFS
38 # file succeed.
39 #
40 # STRATEGY:
41 # 1) Verify this is a multi-processor system
42 # 2) Create multiple threads with each appending to a file
43 # 3) Verify that the resulting file is the expected size
44 #
45
46 verify_runnable "both"
47
48 log_assert "Ensure multiple threads performing write appends to the same" \
49 "ZFS file succeed"
50
51 #
52 # $FILE_SIZE is hardcoded into threadsappend.c and is the expected
53 # size of the file after all the threads have appended to it
54 #
55 typeset -i FILE_SIZE=1310720
56 THREADSAPPEND="$STF_SUITE/bin/threadsappend"
57 TESTFILE='testfile-threadsappend'
58
59 #
60 # This test should be run on a multi-processor system because otherwise the FS
61 # will not be concurrently used by the threads
62 #
63 NCPUS=`psrinfo | wc -l`
64 if [[ -z $NCPUS || $NCPUS -le 1 ]]; then
65 log_fail "This test should be executed on a multi-processor system."
66 fi
67
68 #
69 # zfs_threadsappend tries to append to $TESTFILE using threads
70 # so that the resulting file is $FILE_SIZE bytes in size
71 #
72 log_must $THREADSAPPEND ${TESTDIR}/${TESTFILE}
73
74 #
75 # Check the size of the resulting file
76 #
|