Bash · 1849 bytes Raw Blame History
1 #!/bin/sh
2 TEST_PREFIX="[ulimit]"
3 . "$(cd "$(dirname "$0")/.." && pwd)/test_harness.sh"
4
5 section "1. ulimit display defaults"
6 compare_output "ulimit default shows file size" 'ulimit'
7 compare_output "ulimit -f same as default" 'ulimit -f'
8 check_exit "ulimit -a shows all limits" 'ulimit -a' "0"
9 check_output "ulimit -a produces output" 'ulimit -a | head -1 | grep -q . && echo yes' "yes"
10
11 section "2. ulimit resource types"
12 compare_output "ulimit -n open files" 'ulimit -n'
13 compare_output "ulimit -s stack size" 'ulimit -s'
14 compare_output "ulimit -u max processes" 'ulimit -u'
15 compare_output "ulimit -t cpu time" 'ulimit -t'
16 compare_output "ulimit -c core size" 'ulimit -c'
17 compare_output "ulimit -d data size" 'ulimit -d'
18 compare_output "ulimit -v virtual memory" 'ulimit -v'
19 compare_output "ulimit -l locked memory" 'ulimit -l'
20 compare_output "ulimit -m RSS" 'ulimit -m'
21
22 section "3. ulimit soft vs hard"
23 compare_output "ulimit -Sn soft open files" 'ulimit -Sn'
24 compare_output "ulimit -Hn hard open files" 'ulimit -Hn'
25 compare_output "ulimit -Ss soft stack" 'ulimit -Ss'
26 compare_output "ulimit -Hs hard stack" 'ulimit -Hs'
27 compare_output "ulimit -Su soft processes" 'ulimit -Su'
28 compare_output "ulimit -Hu hard processes" 'ulimit -Hu'
29
30 section "4. ulimit set and query"
31 compare_output "ulimit -n set and get" 'ulimit -n 512; ulimit -n'
32 compare_output "ulimit -s set and get" 'ulimit -s 8192; ulimit -s'
33 compare_output "ulimit -c set to 0" 'ulimit -c 0; ulimit -c'
34 compare_output "ulimit -c set to unlimited" 'ulimit -c unlimited; ulimit -c'
35
36 section "5. ulimit error handling"
37 compare_exit "ulimit invalid flag" 'ulimit -Z 2>/dev/null'
38 compare_exit "ulimit set above hard limit" 'ulimit -n 999999999 2>/dev/null'
39 compare_output "ulimit set then verify" 'OLD=$(ulimit -n); ulimit -n 256; echo $(ulimit -n); ulimit -n $OLD 2>/dev/null'
40
41 print_summary