From d003edcba6aaf29f74b904c09fc9dfdf3b2ff2cc Mon Sep 17 00:00:00 2001 From: = <=> Date: Tue, 31 Jul 2018 00:27:13 -0500 Subject: [PATCH] Fix for issue 300: Correctly print usage for cpu 10 --- src/print_cpu_usage.c | 2 +- testcases/022-cpu-usage-tenth-cpu/cleanup.pl | 15 +++++++++++++++ .../expected_output.pl | 12 ++++++++++++ .../022-cpu-usage-tenth-cpu/i3status.conf | 10 ++++++++++ testcases/022-cpu-usage-tenth-cpu/setup.pl | 19 +++++++++++++++++++ 5 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 testcases/022-cpu-usage-tenth-cpu/cleanup.pl create mode 100644 testcases/022-cpu-usage-tenth-cpu/expected_output.pl create mode 100644 testcases/022-cpu-usage-tenth-cpu/i3status.conf create mode 100644 testcases/022-cpu-usage-tenth-cpu/setup.pl diff --git a/src/print_cpu_usage.c b/src/print_cpu_usage.c index 615fe5d..1fccba4 100644 --- a/src/print_cpu_usage.c +++ b/src/print_cpu_usage.c @@ -163,7 +163,7 @@ void print_cpu_usage(yajl_gen json_gen, char *buffer, const char *format, const } int padding = 1; int step = 10; - while (step < number) { + while (step <= number) { step *= 10; padding++; } diff --git a/testcases/022-cpu-usage-tenth-cpu/cleanup.pl b/testcases/022-cpu-usage-tenth-cpu/cleanup.pl new file mode 100644 index 0000000..ac341be --- /dev/null +++ b/testcases/022-cpu-usage-tenth-cpu/cleanup.pl @@ -0,0 +1,15 @@ +#!/usr/bin/env perl + +use v5.10; +use strict; +use warnings; + +if ($#ARGV != 0 || ! -d $ARGV[0]) { + say "Error with cleanup script: argument not provided or not a directory"; + exit 1; +} + +my $output_file = "$ARGV[0]/stat"; +if (-f $output_file) { + unlink $output_file; +} diff --git a/testcases/022-cpu-usage-tenth-cpu/expected_output.pl b/testcases/022-cpu-usage-tenth-cpu/expected_output.pl new file mode 100644 index 0000000..21482ab --- /dev/null +++ b/testcases/022-cpu-usage-tenth-cpu/expected_output.pl @@ -0,0 +1,12 @@ +#!/usr/bin/env perl + +use v5.10; +use strict; +use warnings; + +chomp(my $cpu_count = `grep -c -P '^processor\\s+:' /proc/cpuinfo`); +if ($cpu_count < 10) { + print "all: 00% CPU_0: 00% CPU_10: \n"; +} else { + print "all: 00% CPU_0: 00% CPU_10: 00%\n"; +} diff --git a/testcases/022-cpu-usage-tenth-cpu/i3status.conf b/testcases/022-cpu-usage-tenth-cpu/i3status.conf new file mode 100644 index 0000000..060adb3 --- /dev/null +++ b/testcases/022-cpu-usage-tenth-cpu/i3status.conf @@ -0,0 +1,10 @@ +general { + output_format = "none" +} + +order += "cpu_usage" + +cpu_usage { + format = "all: %usage CPU_0: %cpu0 CPU_10: %cpu10" + path = "testcases/022-cpu-usage-tenth-cpu/stat" +} diff --git a/testcases/022-cpu-usage-tenth-cpu/setup.pl b/testcases/022-cpu-usage-tenth-cpu/setup.pl new file mode 100644 index 0000000..ec4bca3 --- /dev/null +++ b/testcases/022-cpu-usage-tenth-cpu/setup.pl @@ -0,0 +1,19 @@ +#!/usr/bin/env perl + +use v5.10; +use strict; +use warnings; + +if ($#ARGV != 0 || ! -d $ARGV[0]) { + say "Error with setup script: argument not provided or not a directory"; + exit 1; +} + +chomp(my $cpu_count = `grep -c -P '^processor\\s+:' /proc/cpuinfo`); +my $output_file = "$ARGV[0]/stat"; +open(my $fh, '>', $output_file) or die "Could not open file '$output_file' $!"; +print $fh "cpu 0 0 0 0 0 0 0 0 0 0\n"; +for (my $i = 0; $i < $cpu_count; $i++) { + print $fh "cpu$i 0 0 0 0 0 0 0 0 0 0\n"; +} +close $fh; -- 2.39.5