dcmftest sets its exit code to the number of non-DICOM files encountered. Presumably you would expect exit code of 0 to indicate that all files are DICOM. However, at least on POSIX systems exit codes have a max value of 255, so if you're using the exit code to count files the exit code is incorrect for more than 255 files and is zero for multiples of 256.
Code: Select all
#!/bin/bash
run_test () {
mkdir test_exit_code.$1
cd test_exit_code.$1
for i in $(seq 1 $1) ; do
touch $i
done
echo $(ls | wc -l) files
dcmftest * >/dev/null
echo dcmftest exit code: $?
echo
}
run_test 255
run_test 256
run_test 257
run_test 511
run_test 512
run_test 513
Code: Select all
255 files
dcmftest exit code: 255
256 files
dcmftest exit code: 0
257 files
dcmftest exit code: 1
511 files
dcmftest exit code: 255
512 files
dcmftest exit code: 0
513 files
dcmftest exit code: 1