From 4de23ccb87bc93afefded644edd4285ee1d7a6dd Mon Sep 17 00:00:00 2001 From: Denis Shienkov Date: Mon, 22 Jun 2020 19:06:38 +0300 Subject: baremetal: Add auto-test for 'static library' dependenties This commit adds a blackbox auto-test which provides a project with a multiple static library products 'a-e' and an one application product. An application depends on the 'e' library, but this library also depends on other libraries 'a-d'. Tested for MCS51 architecture with IAR, KEIL, and SDCC toolchains. Change-Id: Ib79f4f7bed4ac0bf6f06d39705bb19bd4284f22d Reviewed-by: Christian Kandeler Reviewed-by: Ivan Komissarov --- .../static-library-dependencies/a1.c | 4 +++ .../static-library-dependencies/a2.c | 4 +++ .../static-library-dependencies/app.c | 6 ++++ .../static-library-dependencies/b.c | 6 ++++ .../static-library-dependencies/c.c | 6 ++++ .../static-library-dependencies/d.c | 7 ++++ .../static-library-dependencies/e.c | 7 ++++ .../static-library-dependencies.qbs | 37 ++++++++++++++++++++++ 8 files changed, 77 insertions(+) create mode 100644 tests/auto/blackbox/testdata-baremetal/static-library-dependencies/a1.c create mode 100644 tests/auto/blackbox/testdata-baremetal/static-library-dependencies/a2.c create mode 100644 tests/auto/blackbox/testdata-baremetal/static-library-dependencies/app.c create mode 100644 tests/auto/blackbox/testdata-baremetal/static-library-dependencies/b.c create mode 100644 tests/auto/blackbox/testdata-baremetal/static-library-dependencies/c.c create mode 100644 tests/auto/blackbox/testdata-baremetal/static-library-dependencies/d.c create mode 100644 tests/auto/blackbox/testdata-baremetal/static-library-dependencies/e.c create mode 100644 tests/auto/blackbox/testdata-baremetal/static-library-dependencies/static-library-dependencies.qbs (limited to 'tests/auto/blackbox/testdata-baremetal/static-library-dependencies') diff --git a/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/a1.c b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/a1.c new file mode 100644 index 000000000..b593e95d8 --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/a1.c @@ -0,0 +1,4 @@ +int a1(void) +{ + return 0; +} diff --git a/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/a2.c b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/a2.c new file mode 100644 index 000000000..35ab7feb3 --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/a2.c @@ -0,0 +1,4 @@ +int a2(void) +{ + return 0; +} diff --git a/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/app.c b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/app.c new file mode 100644 index 000000000..9814bfd9c --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/app.c @@ -0,0 +1,6 @@ +extern int e(void); + +int main(void) +{ + return e(); +} diff --git a/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/b.c b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/b.c new file mode 100644 index 000000000..92df418d1 --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/b.c @@ -0,0 +1,6 @@ +extern int a1(void); + +int b(void) +{ + return a1(); +} diff --git a/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/c.c b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/c.c new file mode 100644 index 000000000..0c0e350f2 --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/c.c @@ -0,0 +1,6 @@ +extern int a2(void); + +int c(void) +{ + return a2(); +} diff --git a/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/d.c b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/d.c new file mode 100644 index 000000000..a3fc084f5 --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/d.c @@ -0,0 +1,7 @@ +extern int b(void); +extern int c(void); + +int d(void) +{ + return b() + c(); +} diff --git a/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/e.c b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/e.c new file mode 100644 index 000000000..9381e845c --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/e.c @@ -0,0 +1,7 @@ +extern int d(void); + +int e(void) +{ + return d(); +} + diff --git a/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/static-library-dependencies.qbs b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/static-library-dependencies.qbs new file mode 100644 index 000000000..9a257ddfd --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/static-library-dependencies/static-library-dependencies.qbs @@ -0,0 +1,37 @@ +Project { + StaticLibrary { + name: "lib-a" + Depends { name: "cpp" } + files: ["a1.c", "a2.c"] + } + StaticLibrary { + name: "lib-b" + Depends { name: "cpp" } + Depends { name: "lib-a" } + files: ["b.c"] + } + StaticLibrary { + name: "lib-c" + Depends { name: "cpp" } + Depends { name: "lib-a" } + files: ["c.c"] + } + StaticLibrary { + name: "lib-d" + Depends { name: "cpp" } + Depends { name: "lib-b" } + Depends { name: "lib-c" } + files: ["d.c"] + } + StaticLibrary { + name: "lib-e" + Depends { name: "cpp" } + Depends { name: "lib-d" } + files: ["e.c"] + } + CppApplication { + name: "app" + Depends { name: "lib-e" } + files: ["app.c"] + } +} -- cgit v1.2.3