diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2022-10-02 12:40:43 -0400 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@centricular.com> | 2022-10-02 23:57:51 +0530 |
commit | e168c3d23a05b23c13a98c95da5c68398575c54a (patch) | |
tree | 3c764f37977d83978d34035b3efbb9663760af1e | |
parent | 20bbe1b6c0a5642d4d8bf2d494739984951d6a4f (diff) | |
download | meson-e168c3d23a05b23c13a98c95da5c68398575c54a.tar.gz |
Add stable regression test
This tests stable maintenance branches, to ensure that build directories
created with older versions of Meson continue to work without wiping,
after updating to a bugfix release.
-rw-r--r-- | .github/workflows/stable_builddir.yml | 35 | ||||
-rw-r--r-- | manual tests/13 builddir upgrade/data/foo.dat | 0 | ||||
-rw-r--r-- | manual tests/13 builddir upgrade/foo.1 | 0 | ||||
-rw-r--r-- | manual tests/13 builddir upgrade/foo.c | 6 | ||||
-rw-r--r-- | manual tests/13 builddir upgrade/lib.c | 9 | ||||
-rw-r--r-- | manual tests/13 builddir upgrade/meson.build | 21 | ||||
-rw-r--r-- | manual tests/13 builddir upgrade/mod.py | 1 |
7 files changed, 72 insertions, 0 deletions
diff --git a/.github/workflows/stable_builddir.yml b/.github/workflows/stable_builddir.yml new file mode 100644 index 000000000..5da321d18 --- /dev/null +++ b/.github/workflows/stable_builddir.yml @@ -0,0 +1,35 @@ +name: stable build directories + +on: + push: + branches: + - '[0-9]+.[0-9]+' + +permissions: + contents: read + +jobs: + regression: + runs-on: ubuntu-latest + env: + TESTDIR: "manual tests/13 builddir upgrade" + steps: + - uses: actions/checkout@v3 + - name: install ninja + run: sudo apt-get -y install build-essential ninja-build + - name: Fetch tags and unshallow + run: git fetch --unshallow --tags + - name: Checkout latest release on this branch + run: | + cp -r "$TESTDIR" "$TESTDIR"-temp + git checkout "$(git describe --abbrev=0)" + - name: Configure with most recent tag + run: ./meson.py setup "$TESTDIR"-temp builddir + - name: Return to testing commit + run: git checkout $GITHUB_SHA + - name: check that everything still works + run: | + ./meson.py compile -C builddir + ninja -C builddir test + DESTDIR=pkg ninja -C builddir install + ./meson.py introspect builddir --all diff --git a/manual tests/13 builddir upgrade/data/foo.dat b/manual tests/13 builddir upgrade/data/foo.dat new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/manual tests/13 builddir upgrade/data/foo.dat diff --git a/manual tests/13 builddir upgrade/foo.1 b/manual tests/13 builddir upgrade/foo.1 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/manual tests/13 builddir upgrade/foo.1 diff --git a/manual tests/13 builddir upgrade/foo.c b/manual tests/13 builddir upgrade/foo.c new file mode 100644 index 000000000..f8edd2356 --- /dev/null +++ b/manual tests/13 builddir upgrade/foo.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +int main() { + printf("Hello world!\n"); + return 0; +} diff --git a/manual tests/13 builddir upgrade/lib.c b/manual tests/13 builddir upgrade/lib.c new file mode 100644 index 000000000..2ea9c7dd1 --- /dev/null +++ b/manual tests/13 builddir upgrade/lib.c @@ -0,0 +1,9 @@ +#if defined _WIN32 || defined __CYGWIN__ +#define DLL_PUBLIC __declspec(dllexport) +#else +#define DLL_PUBLIC +#endif + +int DLL_PUBLIC foo(void) { + return 0; +} diff --git a/manual tests/13 builddir upgrade/meson.build b/manual tests/13 builddir upgrade/meson.build new file mode 100644 index 000000000..34ae39c61 --- /dev/null +++ b/manual tests/13 builddir upgrade/meson.build @@ -0,0 +1,21 @@ +project('check old builddirs in a stable release', 'c') + +lib = both_libraries('lib', 'lib.c') +exe = executable('foo', 'foo.c', link_with: lib, install: true) +test('exe', exe) + +install_data('data/foo.dat', install_dir: get_option('datadir') / 'foo') +install_man('foo.1') + +py = import('python').find_installation() +py.install_sources('mod.py', subdir: 'foo') +install_subdir('data', install_dir: py.get_install_dir()) + +custom_target( + input: 'mod.py', + output: 'hello.dat', + command: [py, '@INPUT@'], + capture: true, + install: true, + install_dir: get_option('localstatedir') / 'foo', +) diff --git a/manual tests/13 builddir upgrade/mod.py b/manual tests/13 builddir upgrade/mod.py new file mode 100644 index 000000000..60f08aa41 --- /dev/null +++ b/manual tests/13 builddir upgrade/mod.py @@ -0,0 +1 @@ +print('Hello world!') |