summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2018-07-19 17:12:40 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-26 13:16:40 +0100
commit19905c78e79cd4e65a5536fc683102f3a549e586 (patch)
treeef5633e379a62cc13d6bb8cb8c164c0981a5bd51
parentf6a00e069589fc53411d8f504805f5fc541531a1 (diff)
downloadpoky-19905c78e79cd4e65a5536fc683102f3a549e586.tar.gz
oeqa: rationalise Perl tests
As with the Python test, this can be both better and faster. No need to copy a file, just run a one-liner. (From OE-Core rev: c6eef46747fe58bb2310be4f06d2fa9b67901d72) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oeqa/files/test.pl2
-rw-r--r--meta/lib/oeqa/runtime/cases/perl.py32
-rw-r--r--meta/lib/oeqa/sdk/cases/perl.py25
3 files changed, 11 insertions, 48 deletions
diff --git a/meta/lib/oeqa/files/test.pl b/meta/lib/oeqa/files/test.pl
deleted file mode 100644
index 689c8f1635..0000000000
--- a/meta/lib/oeqa/files/test.pl
+++ /dev/null
@@ -1,2 +0,0 @@
1$a = 9.01e+21 - 9.01e+21 + 0.01;
2print ("the value of a is ", $a, "\n");
diff --git a/meta/lib/oeqa/runtime/cases/perl.py b/meta/lib/oeqa/runtime/cases/perl.py
index d0b7e8ed92..afeeb180e2 100644
--- a/meta/lib/oeqa/runtime/cases/perl.py
+++ b/meta/lib/oeqa/runtime/cases/perl.py
@@ -1,37 +1,13 @@
1import os 1import os
2 2
3from oeqa.runtime.case import OERuntimeTestCase 3from oeqa.runtime.case import OERuntimeTestCase
4from oeqa.core.decorator.depends import OETestDepends
5from oeqa.core.decorator.oeid import OETestID 4from oeqa.core.decorator.oeid import OETestID
6from oeqa.runtime.decorator.package import OEHasPackage 5from oeqa.runtime.decorator.package import OEHasPackage
7 6
8class PerlTest(OERuntimeTestCase): 7class PerlTest(OERuntimeTestCase):
9
10 @classmethod
11 def setUpClass(cls):
12 src = os.path.join(cls.tc.files_dir, 'test.pl')
13 dst = '/tmp/test.pl'
14 cls.tc.target.copyTo(src, dst)
15
16 @classmethod
17 def tearDownClass(cls):
18 dst = '/tmp/test.pl'
19 cls.tc.target.run('rm %s' % dst)
20
21 @OETestID(1141)
22 @OETestDepends(['ssh.SSHTest.test_ssh'])
23 @OEHasPackage(['perl'])
24 def test_perl_exists(self):
25 status, output = self.target.run('which perl')
26 msg = 'Perl binary not in PATH or not on target.'
27 self.assertEqual(status, 0, msg=msg)
28
29 @OETestID(208) 8 @OETestID(208)
30 @OETestDepends(['perl.PerlTest.test_perl_exists']) 9 @OEHasPackage(['perl'])
31 def test_perl_works(self): 10 def test_perl_works(self):
32 status, output = self.target.run('perl /tmp/test.pl') 11 status, output = self.target.run("perl -e '$_=\"Uryyb, jbeyq\"; tr/a-zA-Z/n-za-mN-ZA-M/;print'")
33 msg = 'Exit status was not 0. Output: %s' % output 12 self.assertEqual(status, 0)
34 self.assertEqual(status, 0, msg=msg) 13 self.assertEqual(output, "Hello, world")
35
36 msg = 'Incorrect output: %s' % output
37 self.assertEqual(output, "the value of a is 0.01", msg=msg)
diff --git a/meta/lib/oeqa/sdk/cases/perl.py b/meta/lib/oeqa/sdk/cases/perl.py
index 8085678116..ff50b46800 100644
--- a/meta/lib/oeqa/sdk/cases/perl.py
+++ b/meta/lib/oeqa/sdk/cases/perl.py
@@ -1,8 +1,4 @@
1import os
2import shutil
3import unittest 1import unittest
4
5from oeqa.core.utils.path import remove_safe
6from oeqa.sdk.case import OESDKTestCase 2from oeqa.sdk.case import OESDKTestCase
7 3
8class PerlTest(OESDKTestCase): 4class PerlTest(OESDKTestCase):
@@ -12,17 +8,10 @@ class PerlTest(OESDKTestCase):
12 self.tc.hasHostPackage("perl-native")): 8 self.tc.hasHostPackage("perl-native")):
13 raise unittest.SkipTest("No perl package in the SDK") 9 raise unittest.SkipTest("No perl package in the SDK")
14 10
15 for f in ['test.pl']: 11 def test_perl(self):
16 shutil.copyfile(os.path.join(self.tc.files_dir, f), 12 try:
17 os.path.join(self.tc.sdk_dir, f)) 13 cmd = "perl -e '$_=\"Uryyb, jbeyq\"; tr/a-zA-Z/n-za-mN-ZA-M/;print'"
18 self.testfile = os.path.join(self.tc.sdk_dir, "test.pl") 14 output = self._run(cmd)
19 15 self.assertEqual(output, "Hello, world")
20 def test_perl_exists(self): 16 except subprocess.CalledProcessError as e:
21 self._run('which perl') 17 self.fail("Unexpected exit %d (output %s)" % (e.returncode, e.output))
22
23 def test_perl_works(self):
24 self._run('perl %s' % self.testfile)
25
26 @classmethod
27 def tearDownClass(self):
28 remove_safe(self.testfile)