f8e98b65ae
Free always used 1024 based units but used the confusing old style kilo,mega etc. This change changes the names to kibi,mebi for 1024 based divisors and kilo,mega for 1000 based divisors or IEC units. It also checks if you try to set two units, e.g free -k -m Petabyte and Pebibyte have been added. If you used to use the long options such as --mega these will now actually print megabytes (they previously printed mebibytes). The short options are being used on the IEC units References: https://www.gitorious.org/procps/procps/merge_requests/38 Signed-off-by: Craig Small <csmall@enc.com.au>
54 lines
2.4 KiB
Plaintext
54 lines
2.4 KiB
Plaintext
#
|
|
# Testsuite for free program
|
|
#
|
|
|
|
set free "${topdir}free"
|
|
set meminfo [ exec cat /proc/meminfo ]
|
|
regexp "MemTotal:\\s+\(\\d+\)" $meminfo -> memtotal_kb
|
|
regexp "SwapTotal:\\s+\(\\d+\)" $meminfo -> swaptotal_kb
|
|
|
|
set free_header "\\s+total\\s+used\\s+free\\s+shared\\s+buff\\/cache\\s+available\\s*"
|
|
|
|
set test "free with no arguments"
|
|
spawn $free
|
|
expect_pass "$test" "^${free_header}Mem:\\s+${memtotal_kb}\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*Swap:\\s+${swaptotal_kb}\\s+\\d+\\s+\\d+\\s*"
|
|
|
|
set test "free with -b argument"
|
|
set memtotal [ expr { $memtotal_kb * 1024 } ]
|
|
set swaptotal [ expr { $swaptotal_kb * 1024 } ]
|
|
spawn $free -b
|
|
expect_pass "$test" "^${free_header}Mem:\\s+${memtotal}\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*Swap:\\s+${swaptotal}\\s+\\d+\\s+\\d+\\s*"
|
|
|
|
foreach {arg divisor } {-k 1 -m 1024 -g 1048576 --mega 1000 --giga 1000000 } {
|
|
set test "free with $arg argument"
|
|
set memtotal [ expr { $memtotal_kb / $divisor } ]
|
|
set swaptotal [ expr { $swaptotal_kb / $divisor } ]
|
|
spawn $free $arg
|
|
expect_pass "$test" "^${free_header}Mem:\\s+$memtotal\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*Swap:\\s+${swaptotal}\\s+\\d+\\s+\\d+\\s*"
|
|
}
|
|
|
|
#set test "free with human readable output"
|
|
#spawn $free -h
|
|
#expect_pass "$test" "${free_header}Mem:\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s*-\\/\\+ buffers\\/cache:\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s*Swap:\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s*"
|
|
|
|
set test "free with lo and hi memory statistics"
|
|
spawn $free -l
|
|
expect_pass "$test" "^${free_header}Mem:\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*Low:\\s+\\d+\\s+\\d+\\s+\\d+\\s*High:\\s+\\d+\\s+\\d+\\s+\\d+\\s*Swap:\\s+\\d+\\s+\\d+\\s+\\d+"
|
|
|
|
set test "free with total"
|
|
spawn $free -t
|
|
expect_pass "$test" "^${free_header}Mem:\\s+${memtotal_kb}\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*Swap:\\s+${swaptotal_kb}\\s+\\d+\\s+\\d+\\s*Total:\\s+\\d+\\s+\\d+\\s+\\d+\\s*"
|
|
|
|
set test "free with negative repeat count"
|
|
spawn $free -c -2
|
|
expect_pass "$test" "\(lt-\)\?free: failed to parse count argument: '-2': Numerical result out of range"
|
|
|
|
set test "free with zero repeat count"
|
|
spawn $free -c 0
|
|
expect_pass "$test" "\(lt-\)\?free: failed to parse count argument: '0': Numerical result out of range"
|
|
|
|
set test "free with positive repeat count"
|
|
spawn $free -c 2
|
|
expect_continue "$test" "^${free_header}"
|
|
expect_pass "$test" "${free_header}"
|