From cb9b55217d40a50f89f0445294a0b2650fc3dc26 Mon Sep 17 00:00:00 2001
From: Emeric Planet <emeric.planet@datadoghq.com>
Date: Tue, 29 Aug 2017 19:01:30 +0200
Subject: Fix CPU unit tests (#239)

Support any amount of available cores on testing machine.
---
 testcases/010-cpu-usage/cleanup.pl          | 15 +++++++++++++++
 testcases/010-cpu-usage/expected_output.pl  | 12 ++++++++++++
 testcases/010-cpu-usage/expected_output.txt |  1 -
 testcases/010-cpu-usage/setup.pl            | 23 +++++++++++++++++++++++
 testcases/010-cpu-usage/stat                |  3 ---
 5 files changed, 50 insertions(+), 4 deletions(-)
 create mode 100644 testcases/010-cpu-usage/cleanup.pl
 create mode 100755 testcases/010-cpu-usage/expected_output.pl
 delete mode 100644 testcases/010-cpu-usage/expected_output.txt
 create mode 100755 testcases/010-cpu-usage/setup.pl
 delete mode 100644 testcases/010-cpu-usage/stat

(limited to 'testcases/010-cpu-usage')

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
-- 
cgit v1.2.3