From 2ccb4d55e7676452a3138ed8abfce56d1fb26a72 Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Thu, 15 Nov 2018 10:53:02 -0600 Subject: oeqa/sdkmingw: Add test cases Adds test cases to verify that gcc, binutils, gdb, and pkg-config are functioning in the MinGW SDK [YOCTO #13020] Signed-off-by: Joshua Watt --- lib/oeqa/sdkmingw/cases/binutils.py | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 lib/oeqa/sdkmingw/cases/binutils.py (limited to 'lib/oeqa/sdkmingw/cases/binutils.py') diff --git a/lib/oeqa/sdkmingw/cases/binutils.py b/lib/oeqa/sdkmingw/cases/binutils.py new file mode 100644 index 0000000..fdd5a47 --- /dev/null +++ b/lib/oeqa/sdkmingw/cases/binutils.py @@ -0,0 +1,55 @@ +# Copyright 2018 by Garmin Ltd. or its subsidiaries +# Released under the MIT license (see COPYING.MIT) + +import os +import unittest + +from oeqa.sdkmingw.case import OESDKMinGWTestCase + +class BinutilsTest(OESDKMinGWTestCase): + td_vars = ['MACHINE'] + + def setUp(self): + super().setUp() + + self.copyTestFile(os.path.join(self.tc.files_dir, 'test.c')) + + machine = self.td.get("MACHINE") + if not (self.tc.hasHostPackage("packagegroup-cross-canadian-%s" % machine) or + self.tc.hasHostPackage("^gcc-", regex=True)): + raise unittest.SkipTest(self.__class__.__name__ + " class: SDK doesn't contain a cross-canadian toolchain") + if not (self.tc.hasHostPackage("packagegroup-cross-canadian-%s" % machine) or + self.tc.hasHostPackage('binutils-cross-canadian-%s' % machine)): + raise unittest.SkipTest(self.__class__.__name__ + " class: SDK doesn't contain a binutils") + + self._run('%CC% -c -g test.c -o test.o') + self._run('%CC% -o test test.o -lm') + + def test_strip(self): + self._run('%STRIP% -s test') + self.assertIsTargetElf(os.path.join(self.test_dir, 'test')) + + def test_ar(self): + self._run('%AR% -rcs lib.a test.o') + self._run('%CC% -o test lib.a -lm') + self.assertIsTargetElf(os.path.join(self.test_dir, 'test')) + + def test_ranlib(self): + self._run('%AR% -rc lib.a test.o') + self._run('%RANLIB% lib.a') + self._run('%CC% -o test lib.a -lm') + self.assertIsTargetElf(os.path.join(self.test_dir, 'test')) + + def test_objcopy(self): + self._run('%OBJCOPY% -g test.o test_no_debug.o') + self.assertIsTargetElf(os.path.join(self.test_dir, 'test_no_debug.o')) + self._run('%CC% -o test test_no_debug.o -lm') + self.assertIsTargetElf(os.path.join(self.test_dir, 'test')) + + def test_objdump(self): + self._run('%OBJDUMP% -S test.o') + + def test_nm(self): + self._run('%NM% test.o') + + -- cgit v1.2.3-54-g00ecf