diff options
| author | Emeric Planet | 2017-08-29 19:01:30 +0200 | 
|---|---|---|
| committer | kousu | 2017-10-05 13:18:23 -0400 | 
| commit | cb9b55217d40a50f89f0445294a0b2650fc3dc26 (patch) | |
| tree | 289f0acdf736709ff0b2725dd668d091f5aff54e | |
| parent | Repair test case. (diff) | |
Fix CPU unit tests (#239)
Support any amount of available cores on testing machine.
| -rw-r--r-- | testcases/010-cpu-usage/cleanup.pl | 15 | ||||
| -rwxr-xr-x | testcases/010-cpu-usage/expected_output.pl | 12 | ||||
| -rw-r--r-- | testcases/010-cpu-usage/expected_output.txt | 1 | ||||
| -rwxr-xr-x | testcases/010-cpu-usage/setup.pl | 23 | ||||
| -rw-r--r-- | testcases/010-cpu-usage/stat | 3 | ||||
| -rw-r--r-- | testcases/011-cpu-usage/cleanup.pl | 15 | ||||
| -rw-r--r-- | testcases/011-cpu-usage/expected_output.pl | 12 | ||||
| -rw-r--r-- | testcases/011-cpu-usage/expected_output.txt | 1 | ||||
| -rw-r--r-- | testcases/011-cpu-usage/setup.pl | 23 | ||||
| -rw-r--r-- | testcases/011-cpu-usage/stat | 3 | ||||
| -rw-r--r-- | testcases/012-cpu-usage-error/stat | 1 | ||||
| -rwxr-xr-x | travis/run-tests.pl | 15 | 
12 files changed, 112 insertions, 12 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/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; | 
