free: Use IEC units

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>
This commit is contained in:
Craig Small
2015-04-03 19:18:58 +11:00
parent 6ed8cf3444
commit f8e98b65ae
3 changed files with 109 additions and 28 deletions

View File

@@ -19,7 +19,7 @@ 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 } {
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 } ]