1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 12:29:55 +00:00

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>
This commit is contained in:
Ross Burton
2018-07-19 17:12:40 +01:00
committed by Richard Purdie
parent f6a00e0695
commit 19905c78e7
3 changed files with 11 additions and 48 deletions
-2
View File
@@ -1,2 +0,0 @@
$a = 9.01e+21 - 9.01e+21 + 0.01;
print ("the value of a is ", $a, "\n");
+4 -28
View File
@@ -1,37 +1,13 @@
import os import os
from oeqa.runtime.case import OERuntimeTestCase from oeqa.runtime.case import OERuntimeTestCase
from oeqa.core.decorator.depends import OETestDepends
from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.oeid import OETestID
from oeqa.runtime.decorator.package import OEHasPackage from oeqa.runtime.decorator.package import OEHasPackage
class PerlTest(OERuntimeTestCase): class PerlTest(OERuntimeTestCase):
@classmethod
def setUpClass(cls):
src = os.path.join(cls.tc.files_dir, 'test.pl')
dst = '/tmp/test.pl'
cls.tc.target.copyTo(src, dst)
@classmethod
def tearDownClass(cls):
dst = '/tmp/test.pl'
cls.tc.target.run('rm %s' % dst)
@OETestID(1141)
@OETestDepends(['ssh.SSHTest.test_ssh'])
@OEHasPackage(['perl'])
def test_perl_exists(self):
status, output = self.target.run('which perl')
msg = 'Perl binary not in PATH or not on target.'
self.assertEqual(status, 0, msg=msg)
@OETestID(208) @OETestID(208)
@OETestDepends(['perl.PerlTest.test_perl_exists']) @OEHasPackage(['perl'])
def test_perl_works(self): def test_perl_works(self):
status, output = self.target.run('perl /tmp/test.pl') status, output = self.target.run("perl -e '$_=\"Uryyb, jbeyq\"; tr/a-zA-Z/n-za-mN-ZA-M/;print'")
msg = 'Exit status was not 0. Output: %s' % output self.assertEqual(status, 0)
self.assertEqual(status, 0, msg=msg) self.assertEqual(output, "Hello, world")
msg = 'Incorrect output: %s' % output
self.assertEqual(output, "the value of a is 0.01", msg=msg)
+7 -18
View File
@@ -1,8 +1,4 @@
import os
import shutil
import unittest import unittest
from oeqa.core.utils.path import remove_safe
from oeqa.sdk.case import OESDKTestCase from oeqa.sdk.case import OESDKTestCase
class PerlTest(OESDKTestCase): class PerlTest(OESDKTestCase):
@@ -12,17 +8,10 @@ class PerlTest(OESDKTestCase):
self.tc.hasHostPackage("perl-native")): self.tc.hasHostPackage("perl-native")):
raise unittest.SkipTest("No perl package in the SDK") raise unittest.SkipTest("No perl package in the SDK")
for f in ['test.pl']: def test_perl(self):
shutil.copyfile(os.path.join(self.tc.files_dir, f), try:
os.path.join(self.tc.sdk_dir, f)) cmd = "perl -e '$_=\"Uryyb, jbeyq\"; tr/a-zA-Z/n-za-mN-ZA-M/;print'"
self.testfile = os.path.join(self.tc.sdk_dir, "test.pl") output = self._run(cmd)
self.assertEqual(output, "Hello, world")
def test_perl_exists(self): except subprocess.CalledProcessError as e:
self._run('which perl') self.fail("Unexpected exit %d (output %s)" % (e.returncode, e.output))
def test_perl_works(self):
self._run('perl %s' % self.testfile)
@classmethod
def tearDownClass(self):
remove_safe(self.testfile)