diff --git a/tests/frontend/project_default/elements/target.bst b/tests/frontend/project_default/elements/target.bst new file mode 100644 index 0000000000000000000000000000000000000000..d644c89ba9b2940d716f91665230ed5c8c9e5d9c --- /dev/null +++ b/tests/frontend/project_default/elements/target.bst @@ -0,0 +1,4 @@ +kind: stack +description: | + + Main stack target for the bst build test diff --git a/tests/frontend/project_default/elements/target2.bst b/tests/frontend/project_default/elements/target2.bst new file mode 100644 index 0000000000000000000000000000000000000000..d644c89ba9b2940d716f91665230ed5c8c9e5d9c --- /dev/null +++ b/tests/frontend/project_default/elements/target2.bst @@ -0,0 +1,4 @@ +kind: stack +description: | + + Main stack target for the bst build test diff --git a/tests/frontend/project_default/project.conf b/tests/frontend/project_default/project.conf new file mode 100644 index 0000000000000000000000000000000000000000..630fe5244b569eb95f4f4a4a42179bee09685368 --- /dev/null +++ b/tests/frontend/project_default/project.conf @@ -0,0 +1,10 @@ +# Project config for frontend build test +name: test + +element-path: elements + +fatal-warnings: +- bad-element-suffix + +defaults: + target-element: target2.bst diff --git a/tests/frontend/project_fail/elements/compose-all.bst b/tests/frontend/project_fail/elements/compose-all.bst new file mode 100644 index 0000000000000000000000000000000000000000..9b981dd733800dfc3cbfd20df79e51864536df0b --- /dev/null +++ b/tests/frontend/project_fail/elements/compose-all.bst @@ -0,0 +1,10 @@ +kind: compose + +depends: +- fileNAME: import-dev.bst + type: build + +config: + # Dont try running the sandbox, we dont have a + # runtime to run anything in this context. + integrate: False diff --git a/tests/frontend/project_fail/elements/import-dev.bst b/tests/frontend/project_fail/elements/import-dev.bst new file mode 100644 index 0000000000000000000000000000000000000000..152a54667fe9de84c37971819fbb7fafb5df23c1 --- /dev/null +++ b/tests/frontend/project_fail/elements/import-dev.bst @@ -0,0 +1,4 @@ +kind: import +sources: +- kind: local + path: files/dev-files diff --git a/tests/frontend/project_fail/elements/target.bst b/tests/frontend/project_fail/elements/target.bst new file mode 100644 index 0000000000000000000000000000000000000000..154c477e6953691d3166626fb89da7214909dc28 --- /dev/null +++ b/tests/frontend/project_fail/elements/target.bst @@ -0,0 +1,7 @@ +kind: stack +description: | + + Main stack target for the bst build test + +depends: +- compose-all.bst diff --git a/tests/frontend/project_fail/files/dev-files/usr/include/pony.h b/tests/frontend/project_fail/files/dev-files/usr/include/pony.h new file mode 100644 index 0000000000000000000000000000000000000000..40bd0c2e768fbd9238ce3a7f332c245fd950b64f --- /dev/null +++ b/tests/frontend/project_fail/files/dev-files/usr/include/pony.h @@ -0,0 +1,12 @@ +#ifndef __PONY_H__ +#define __PONY_H__ + +#define PONY_BEGIN "Once upon a time, there was a pony." +#define PONY_END "And they lived happily ever after, the end." + +#define MAKE_PONY(story) \ + PONY_BEGIN \ + story \ + PONY_END + +#endif /* __PONY_H__ */ diff --git a/tests/frontend/project_fail/project.conf b/tests/frontend/project_fail/project.conf new file mode 100644 index 0000000000000000000000000000000000000000..854e38693f391e65b8f9af10ee35679e4907ccb0 --- /dev/null +++ b/tests/frontend/project_fail/project.conf @@ -0,0 +1,4 @@ +# Project config for frontend build test +name: test + +element-path: elements diff --git a/tests/frontend/show.py b/tests/frontend/show.py index d6e153e2b7eae6535fc6ad776f655ba41226007c..107473c098dcc9e5d247cd25dfbfda49877d33fb 100644 --- a/tests/frontend/show.py +++ b/tests/frontend/show.py @@ -46,6 +46,33 @@ def test_show_invalid_element_path(cli, datafiles): 'show', "foo.bst"]) + +@pytest.mark.datafiles(DATA_DIR + "_default") +def test_show_default(cli, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename) + prev_dir = os.getcwd() + os.chdir(project) + result = cli.run(project=project, silent=True, args=[ + 'show']) + os.chdir(prev_dir) + + result.assert_success() + results = result.output.strip().splitlines() + expected = 'buildable ca4321107f0f529170d345af19372c57a6672f62afdcbdd36ca067b67124ef60 target2.bst' + if result.output.strip() != expected: + raise AssertionError("Expected output:\n{}\nInstead received output:\n{}" + .format(expected, result.output)) + + +@pytest.mark.datafiles(DATA_DIR + "_fail") +def test_show_fail(cli, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename) + prev_dir = os.getcwd() + os.chdir(project) + result = cli.run(project=project, silent=True, args=[ + 'show']) + os.chdir(prev_dir) + result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.INVALID_DATA)