]> git.sur5r.net Git - i3/i3status/commitdiff
Fix CPU unit tests (#239)
authorEmeric Planet <emeric.planet@datadoghq.com>
Tue, 29 Aug 2017 17:01:30 +0000 (19:01 +0200)
committerMichael Stapelberg <stapelberg@users.noreply.github.com>
Tue, 29 Aug 2017 17:01:30 +0000 (19:01 +0200)
Support any amount of available cores on testing machine.

13 files changed:
testcases/010-cpu-usage/cleanup.pl [new file with mode: 0644]
testcases/010-cpu-usage/expected_output.pl [new file with mode: 0755]
testcases/010-cpu-usage/expected_output.txt [deleted file]
testcases/010-cpu-usage/setup.pl [new file with mode: 0755]
testcases/010-cpu-usage/stat [deleted file]
testcases/011-cpu-usage/cleanup.pl [new file with mode: 0644]
testcases/011-cpu-usage/expected_output.pl [new file with mode: 0644]
testcases/011-cpu-usage/expected_output.txt [deleted file]
testcases/011-cpu-usage/setup.pl [new file with mode: 0644]
testcases/011-cpu-usage/stat [deleted file]
testcases/012-cpu-usage-error/stat
testcases/014-battery-capacity/expected_output.txt
travis/run-tests.pl

diff --git a/testcases/010-cpu-usage/cleanup.pl b/testcases/010-cpu-usage/cleanup.pl
new file mode 100644 (file)
index 0000000..ac341be
--- /dev/null
@@ -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/010-cpu-usage/expected_output.pl b/testcases/010-cpu-usage/expected_output.pl
new file mode 100755 (executable)
index 0000000..d14c908
--- /dev/null
@@ -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 == 1) {
+    print "all: 100% CPU_0: 100% CPU_1: \n";
+} else {
+    print "all: 75% CPU_0: 100% CPU_1: 50%\n";
+}
diff --git a/testcases/010-cpu-usage/expected_output.txt b/testcases/010-cpu-usage/expected_output.txt
deleted file mode 100644 (file)
index 336596e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-all: 75% CPU_0: 100% CPU_1: 50%
diff --git a/testcases/010-cpu-usage/setup.pl b/testcases/010-cpu-usage/setup.pl
new file mode 100755 (executable)
index 0000000..8123374
--- /dev/null
@@ -0,0 +1,23 @@
+#!/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";
+print $fh "cpu0 100 0 0 0 0 0 0 0 0 0\n";
+if ($cpu_count > 1) {
+    print $fh "cpu1 50 0 0 50 0 0 0 0 0 0\n";
+    for (my $i = 2; $i <= $cpu_count; $i++) {
+        print $fh "cpu$i 0 0 0 0 0 0 0 0 0 0\n";
+    }
+}
+close $fh;
diff --git a/testcases/010-cpu-usage/stat b/testcases/010-cpu-usage/stat
deleted file mode 100644 (file)
index 6fbc94e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-cpu  0 0 0 0 0 0 0 0 0 0
-cpu0 100 0 0 0 0 0 0 0 0 0
-cpu1 50 0 0 50 0 0 0 0 0 0
diff --git a/testcases/011-cpu-usage/cleanup.pl b/testcases/011-cpu-usage/cleanup.pl
new file mode 100644 (file)
index 0000000..ac341be
--- /dev/null
@@ -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/011-cpu-usage/expected_output.pl b/testcases/011-cpu-usage/expected_output.pl
new file mode 100644 (file)
index 0000000..d8bf5bd
--- /dev/null
@@ -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 == 1) {
+    print "all: 00% CPU_0: 00% CPU_1: \n";
+} else {
+    print "all: 50% CPU_0: 00% CPU_1: 100%\n";
+}
diff --git a/testcases/011-cpu-usage/expected_output.txt b/testcases/011-cpu-usage/expected_output.txt
deleted file mode 100644 (file)
index 930a2b5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-all: 50% CPU_0: 00% CPU_1: 100%
diff --git a/testcases/011-cpu-usage/setup.pl b/testcases/011-cpu-usage/setup.pl
new file mode 100644 (file)
index 0000000..d1e1512
--- /dev/null
@@ -0,0 +1,23 @@
+#!/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";
+print $fh "cpu0 0 0 0 300 0 0 0 0 0 0\n";
+if ($cpu_count > 1) {
+    print $fh "cpu1 100 100 100 0 0 0 0 0 0 0\n";
+}
+for (my $i = 2; $i <= $cpu_count; $i++) {
+    print $fh "cpu$i 0 0 0 0 0 0 0 0 0 0\n";
+}
+close $fh;
diff --git a/testcases/011-cpu-usage/stat b/testcases/011-cpu-usage/stat
deleted file mode 100644 (file)
index 9c77e7e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-cpu  0 0 0 0 0 0 0 0 0 0
-cpu0 0 0 0 300 0 0 0 0 0 0
-cpu1 100 100 100 0 0 0 0 0 0 0
index cb9b6e38339d2efe825e9821f765a1537ac2b39a..9fb7b5c3737f1e8b53eec5aefb478ad2961c89fd 100644 (file)
@@ -1,2 +1 @@
 cpu  0 0 0 0 0 0 0 0 0 0
-cpu0 100 0 0 0 0 0 0 0 0 0
index 3f97d1bab20b7597ed26458367f1d61c2de58eaa..d08aa58ff2eadafcb2858dca81a397c0c7361412 100644 (file)
@@ -1 +1 @@
-Touchpad: 100.00% BAT 
\ No newline at end of file
+Touchpad: 100.00% BAT
index 453a63324ffcc9f48e666e48cb2ab329c5879b4e..5936b7eb1e2606cd248ddb92a12367ebfd0a1830 100755 (executable)
@@ -3,19 +3,29 @@
 use v5.10;
 use strict;
 use warnings;
+use English;
 use Term::ANSIColor qw(:constants);
 use File::Basename;
 
 sub TestCase {
     my ($dir) = @_;
+
+    if ( -f "@_/setup.pl") {
+        system($EXECUTABLE_NAME, "@_/setup.pl", ($dir));
+    }
+
     my $conf = "$dir/i3status.conf";
     my $testres = `./i3status --run-once -c $conf`;
     my $refres = "";
 
     if ( -f "@_/expected_output.txt") {
         $refres = `cat "@_/expected_output.txt"`;
-    } elsif ( -f "@_/expected_output.sh") {
-        $refres = `bash @_/expected_output.sh`;
+    } elsif ( -f "@_/expected_output.pl") {
+        $refres = `$EXECUTABLE_NAME @_/expected_output.pl`;
+    }
+
+    if ( -f "@_/cleanup.pl") {
+        system($EXECUTABLE_NAME, "@_/cleanup.pl", ($dir));
     }
 
     if ( "$testres" eq "$refres" ) {
@@ -27,7 +37,6 @@ sub TestCase {
     }
 }
 
-
 my $testcases = 'testcases';
 my $testresults = 1;