summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmeric Planet <emeric.planet@datadoghq.com>2017-08-29 19:01:30 +0200
committerMichael Stapelberg <stapelberg@users.noreply.github.com>2017-08-29 19:01:30 +0200
commit884e4da6730a31fc7a5ef892fb9cb061baaf5f6c (patch)
treea35256792803bfa408faf3d46f1ca2f9cb491b80
parentca9bee8b885e810fd849abcb9b544b487636854c (diff)
Fix CPU unit tests (#239)
Support any amount of available cores on testing machine.
-rw-r--r--testcases/010-cpu-usage/cleanup.pl15
-rwxr-xr-xtestcases/010-cpu-usage/expected_output.pl12
-rw-r--r--testcases/010-cpu-usage/expected_output.txt1
-rwxr-xr-xtestcases/010-cpu-usage/setup.pl23
-rw-r--r--testcases/010-cpu-usage/stat3
-rw-r--r--testcases/011-cpu-usage/cleanup.pl15
-rw-r--r--testcases/011-cpu-usage/expected_output.pl12
-rw-r--r--testcases/011-cpu-usage/expected_output.txt1
-rw-r--r--testcases/011-cpu-usage/setup.pl23
-rw-r--r--testcases/011-cpu-usage/stat3
-rw-r--r--testcases/012-cpu-usage-error/stat1
-rw-r--r--testcases/014-battery-capacity/expected_output.txt2
-rwxr-xr-xtravis/run-tests.pl15
13 files changed, 113 insertions, 13 deletions
diff --git a/testcases/010-cpu-usage/cleanup.pl b/testcases/010-cpu-usage/cleanup.pl
new file mode 100644
index 0000000..ac341be
--- /dev/null
+++ b/testcases/010-cpu-usage/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/010-cpu-usage/expected_output.pl b/testcases/010-cpu-usage/expected_output.pl
new file mode 100755
index 0000000..d14c908
--- /dev/null
+++ b/testcases/010-cpu-usage/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 == 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
index 336596e..0000000
--- a/testcases/010-cpu-usage/expected_output.txt
+++ /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
index 0000000..8123374
--- /dev/null
+++ b/testcases/010-cpu-usage/setup.pl
@@ -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
index 6fbc94e..0000000
--- a/testcases/010-cpu-usage/stat
+++ /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
index 0000000..ac341be
--- /dev/null
+++ b/testcases/011-cpu-usage/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/011-cpu-usage/expected_output.pl b/testcases/011-cpu-usage/expected_output.pl
new file mode 100644
index 0000000..d8bf5bd
--- /dev/null
+++ b/testcases/011-cpu-usage/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 == 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
index 930a2b5..0000000
--- a/testcases/011-cpu-usage/expected_output.txt
+++ /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
index 0000000..d1e1512
--- /dev/null
+++ b/testcases/011-cpu-usage/setup.pl
@@ -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
index 9c77e7e..0000000
--- a/testcases/011-cpu-usage/stat
+++ /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
diff --git a/testcases/012-cpu-usage-error/stat b/testcases/012-cpu-usage-error/stat
index cb9b6e3..9fb7b5c 100644
--- a/testcases/012-cpu-usage-error/stat
+++ b/testcases/012-cpu-usage-error/stat
@@ -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
diff --git a/testcases/014-battery-capacity/expected_output.txt b/testcases/014-battery-capacity/expected_output.txt
index 3f97d1b..d08aa58 100644
--- a/testcases/014-battery-capacity/expected_output.txt
+++ b/testcases/014-battery-capacity/expected_output.txt
@@ -1 +1 @@
-Touchpad: 100.00% BAT \ No newline at end of file
+Touchpad: 100.00% BAT
diff --git a/travis/run-tests.pl b/travis/run-tests.pl
index 453a633..5936b7e 100755
--- a/travis/run-tests.pl
+++ b/travis/run-tests.pl
@@ -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;