diff options
author | Ross Burton <ross.burton@intel.com> | 2018-07-19 17:12:40 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-07-26 13:16:40 +0100 |
commit | 19905c78e79cd4e65a5536fc683102f3a549e586 (patch) | |
tree | ef5633e379a62cc13d6bb8cb8c164c0981a5bd51 | |
parent | f6a00e069589fc53411d8f504805f5fc541531a1 (diff) | |
download | poky-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.pl | 2 | ||||
-rw-r--r-- | meta/lib/oeqa/runtime/cases/perl.py | 32 | ||||
-rw-r--r-- | meta/lib/oeqa/sdk/cases/perl.py | 25 |
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; | ||
2 | print ("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 @@ | |||
1 | import os | 1 | import os |
2 | 2 | ||
3 | from oeqa.runtime.case import OERuntimeTestCase | 3 | from oeqa.runtime.case import OERuntimeTestCase |
4 | from oeqa.core.decorator.depends import OETestDepends | ||
5 | from oeqa.core.decorator.oeid import OETestID | 4 | from oeqa.core.decorator.oeid import OETestID |
6 | from oeqa.runtime.decorator.package import OEHasPackage | 5 | from oeqa.runtime.decorator.package import OEHasPackage |
7 | 6 | ||
8 | class PerlTest(OERuntimeTestCase): | 7 | class 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 @@ | |||
1 | import os | ||
2 | import shutil | ||
3 | import unittest | 1 | import unittest |
4 | |||
5 | from oeqa.core.utils.path import remove_safe | ||
6 | from oeqa.sdk.case import OESDKTestCase | 2 | from oeqa.sdk.case import OESDKTestCase |
7 | 3 | ||
8 | class PerlTest(OESDKTestCase): | 4 | class 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) | ||