summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add external plugin tests to CIcoldtom/external-pluginsThomas Coldrick2019-10-151-2/+13
| | | | | | | | | Runs external plugin tests on fedora 29 with allowed failure. At present this only tests against a branch, as there is tooling missing in bst-plugins-experimental, and there is no tag which would be compatible. In future there should be two targets, one testing plugins master and one testing the last tag.
* Remove integration tests for moved pluginsThomas Coldrick2019-10-157-155/+0
|
* Add tox env for external standard plugin testsThomas Coldrick2019-10-156-21/+82
| | | | | | | | | | | | | | Adds tooling to define a list of external plugin repos in `requirements/external-requirements.yml` in a nice yaml format, which seemed the easiest way to sort out the potential config issues. The main thing is the addition of the `requirements/parse-external.py` script, which generates a list of package names and two requirements.txt files, one for fixed versions, one for master. It is assumed that `master` more means "test against a branch" and `fixed` means "test against a tag". Also adds tox environments to run these tests.
* tests: Remove some ostree stuffThomas Coldrick2019-10-152-2/+0
|
* tests: Move standard workspace test to sourcetestsThomas Coldrick2019-10-151-0/+58
| | | | | | As this test is parametised by the repo kinds from the _sourcetests, we should move it to be with them. As an additional motivation, not moving this means that these tests fail when we register external sources.
* Get plugins to test in bst CIThomas Coldrick2019-10-152-8/+26
|
* tests: Add a basic plugin to test variablesThomas Coldrick2019-10-1510-1/+118
| | | | | | | | As we're moving all plugins out of this repo, but we still should probably test that variables can be loaded from defaults and overrided correctly, I've added a very basic test plugin to handle this. It's essentially just a BuildElement, like autotools etc, but with basic variables to check if they're loaded.
* Tests: Remove bst-plugins-experimental dependencyThomas Coldrick2019-10-1514-79/+0
| | | | This stops the tests from being interlinked for BuildStream itself.
* Merge branch 'juerg/prepare-fork' into 'master'bst-marge-bot2019-10-159-61/+45
|\ | | | | | | | | Replace is_fork_allowed() with prepare_fork() See merge request BuildStream/buildstream!1641
| * workspace.py: Do not close gRPC channelsJürg Billeter2019-10-152-5/+0
| | | | | | | | This is now handled in Context.prepare_fork().
| * _remote.py: Do not use subprocess to check remoteJürg Billeter2019-10-151-37/+6
| | | | | | | | This is no longer required as gRPC connections are closed before fork.
| * _context.py: Replace is_fork_allowed() with prepare_fork()Jürg Billeter2019-10-152-13/+10
| |
| * scheduler.py: Call is_fork_allowed() right before spawning jobsJürg Billeter2019-10-151-2/+7
| | | | | | | | | | gRPC channels might be opened after the scheduler has already been started. Make sure channels are closed right before spawning jobs.
| * _basecache.py: Add close_grpc_channels() methodJürg Billeter2019-10-151-3/+10
| |
| * cascache.py: Rename close_channel() to close_grpc_channels()Jürg Billeter2019-10-153-5/+5
| | | | | | | | This aligns the method name with has_open_grpc_channels().
| * cascache.py: Reset _casd_cas in close_channel()Jürg Billeter2019-10-151-0/+1
| |
| * _remote.py: Reset _initialized in close()Jürg Billeter2019-10-151-0/+2
| |
| * _sourcecache.py: Reset source_service in SourceRemote.close()Jürg Billeter2019-10-151-0/+4
| |
| * _artifactcache.py: Reset artifact_service in ArtifactRemote.close()Jürg Billeter2019-10-151-0/+4
|/
* Merge branch 'aevri/platform_win32' into 'master'bst-marge-bot2019-10-142-0/+63
|\ | | | | | | | | win32: _platform/win32: add support for win32 See merge request BuildStream/buildstream!1624
| * win32: _platform/win32: add support for win32Angelos Evripiotis2019-10-142-0/+63
|/ | | | | | Copy the approach of 'Darwin' and provide a SandboxDummy. This enables us to run 'bst workspace list' on Windows.
* Merge branch 'tlater/progress-tests' into 'master'bst-marge-bot2019-10-1011-59/+204
|\ | | | | | | | | | | | | Improve assertions around element loading progress reporting Closes #1094 See merge request BuildStream/buildstream!1608
| * Improve progress testsTristan Maat2019-10-106-44/+149
| |
| * Remove XXX comment about missing progressTristan Maat2019-10-101-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | This should be safe now - this particular point turned out to be involved in loading dependencies of junction elements, rather than anything in their projects. This meant that, yes, we were missing progress, however junction elements are not allowed to have dependencies in the first place, so we simply short-circuit their load and avoid the problem altogether. We also added more explicit progress opt-outs, since it's far too easy to end up with spurious Nones.
| * testutils/context.py: Mock tasks instead of accepting NonesTristan Maat2019-10-104-12/+27
| | | | | | | | | | | | | | | | | | | | | | | | To ensure that we only disable element loading task progress reporting for very specific code paths, we need to teach the test suite to be a bit smarter. For this reason we now mock a _Task object and return it in our mock context's relevant method invocations. Other code paths that deliberately invoke the loader without task reporting now mark their loads with NO_PROGRESS.
| * loader.py: Avoid loading deps of junction metaelementsTristan Maat2019-10-102-2/+20
|/ | | | | | | | | | | | | By avoiding this, loading metaelements of junctions becomes cheap even for junctions with erroneous dependencies, and we can ignore their task reporting. Task reporting for junction metaelement loading is confusing, since the junction element itself will never be part of the pipeline, so we'd rather not have this show up as an actual loaded element. Elements loaded from the junction are loaded separately, therefore this does not affect their progress display.
* Merge branch 'bschubert/partial-source-cache' into 'master'bst-marge-bot2019-10-102-95/+111
|\ | | | | | | | | Gracefully fallback to fetching source if remote doesn't have every blob cached See merge request BuildStream/buildstream!1635
| * _sourcecache: Fallback to fetch source when remote has missing blobsBenjamin Schubert2019-10-102-0/+52
| | | | | | | | | | | | If a remote has some missing blobs for a source, we should not fail abruptly but instead continue to the next remote, and, in the worst case, fetch the source again.
| * tests/sourcecache/fetch.py: Extract configuration of bstBenjamin Schubert2019-10-101-48/+26
| | | | | | | | | | | | | | | | Extract the configuration of the BuildStream cli as it is every time the same into a separate function. This helps seeing what is setup of the tests and what is the actual test itself.
| * tests/sourcecache/fetch.py: Extract element's creation to a functionBenjamin Schubert2019-10-101-30/+17
| | | | | | | | | | | | All tests in this file use the same method for creating an element. It is easier to write new tests to have this factored out.
| * tests/sourcecache/fetch.py: Don't hardcode the element nameBenjamin Schubert2019-10-101-7/+7
| | | | | | | | | | This removes the need of having a hardcoded element name, by simply reusing the 'element_name' variable.
| * tests/sourcecache/fetch.py: Extract logic to move local cas to remoteBenjamin Schubert2019-10-101-10/+9
|/ | | | This method can be reused and shared, and makes the tests more readable.
* Merge branch 'traveltissues/strictxfail' into 'master'bst-marge-bot2019-10-0911-18/+19
|\ | | | | | | | | setup.cfg: make xfails strict by default See merge request BuildStream/buildstream!1632
| * setup.cfg: make xfail marks strict by defaulttraveltissues/strictxfailDarius Makovsky2019-10-099-16/+17
| | | | | | | | tests: remove strict kwargs from xfail marks
| * tests: unmark tests passing with buildboxDarius Makovsky2019-10-092-2/+2
|/
* Merge branch 'bschubert/fuse-permissions' into 'master'bst-marge-bot2019-10-091-14/+35
|\ | | | | | | | | | | | | _fuse/mount.py: Monitor the fuse process while waiting for the mount Closes #1158 See merge request BuildStream/buildstream!1634
| * _fuse/mount.py: Monitor the fuse process while waiting for the mountbschubert/fuse-permissionsBenjamin Schubert2019-10-091-14/+35
|/ | | | | | | | | | | In some cases, users might not have permissions to use fuse, or fuse might crash. This was previously leading to a hanged process and, with chance an error message on the UI, which could be overwritten. This ensures we are explicitely monitoring the fuse process while waiting and adds better reporting of the fuse errors.
* Merge branch 'bschubert/fix-overnight' into 'master'Javier Jardón2019-10-091-3/+3
|\ | | | | | | | | | | | | .gitlab-ci.yml: Bump versions for overnight tests Closes #1090 See merge request BuildStream/buildstream!1631
| * .gitlab-ci.yml: Bump versions for overnight testsBenjamin Schubert2019-10-091-3/+3
|/ | | | | This fixes the overnight tests by updating the freedesktop-sdk and the bst-plugins-experimental version
* Merge branch 'bschubert/fix-empty-buildtree' into 'master'bst-marge-bot2019-10-083-2/+47
|\ | | | | | | | | | | | | _artifactcache.py: Don't push artifact blobs when no files are present Closes #1145 See merge request BuildStream/buildstream!1630
| * _artifactcache.py: Don't push artifact blobs when no files are presentBenjamin Schubert2019-10-083-2/+47
|/ | | | | | | | | | Previously, if an artifact proto had no files at all in it, we would fail at pushing it, making BuildStream crash. When no files are part of an artifact proto, we can short-circuit the call and avoid pushing them unecessarily. - Add a test to ensure this doesn't come back.
* Merge branch 'bschubert/casd-listen-failures' into 'master'bst-marge-bot2019-10-083-2/+44
|\ | | | | | | | | | | | | Listen for casd failures and abort the run when they happen Closes #1157 See merge request BuildStream/buildstream!1620
| * _scheduler.py: Listen for buildbox-casd failure and terminateBenjamin Schubert2019-10-083-2/+44
|/ | | | | | | This adds a listener on the scheduler's event loop to ensure that the buildbox-casd process stays alive during the run. If that fails, terminate all running processes, we know they can't succeed anyways and exit accordingly.
* Merge branch 'bschubert/fix-windows-symlink' into 'master'bst-marge-bot2019-10-082-1/+16
|\ | | | | | | | | tests/frontend/buildcheckout.py: Create required symlinks on the fly See merge request BuildStream/buildstream!1629
| * tests/frontend/buildcheckout.py: Create required symlinks on the flybschubert/fix-windows-symlinkBenjamin Schubert2019-10-082-1/+16
|/ | | | | | | | | Windows checks out symlinks as a file with content is the path of the symlink. This makes it impossible to mount the buildstream folder in a docker container and run the tests. This removes the symlink, and creates it on the fly for tests that use it, which fixes the problem.
* Merge branch 'traveltissues/1159' into 'master'bst-marge-bot2019-10-083-10/+10
|\ | | | | | | | | | | | | Defer workspace source commits Closes #1159 See merge request BuildStream/buildstream!1628
| * Defer committing workspace files to cachetraveltissues/1159Darius Makovsky2019-10-083-10/+10
|/ | | | | | | | | Remove XFAIL mark from test_workspace_visible and remove the explicit SourceCache.commit() in the workspace source plugin. Allow buildstream to handle the commit logic. Add handling for non-cached workspace sources in `source.Source._generate_keys()`.
* Merge branch 'bschubert/fix-xdg-temppaths' into 'master'bst-marge-bot2019-10-083-8/+23
|\ | | | | | | | | setup.cfg: Fix xdg env vars to not affect the host See merge request BuildStream/buildstream!1627
| * setup.cfg: Fix xdg env vars to not affect the hostbschubert/fix-xdg-temppathsBenjamin Schubert2019-10-083-8/+23
|/ | | | | | | | | | | | | | | | A fix was made in https://gitlab.com/BuildStream/buildstream/merge_requests/1244 in order to set xdg_* env variables inside of the test's directory to avoid importing data from the host. There was however still two problems: - When a variable was not set, it was set with a relative path, which would create a configuration for BuildStream that is invalid. - When a variable was set and running with pytest directly, we would still use the variable's value, which would be the host one. This ensure this can never happen, by not relying on the same variable's name and always overriding them.
* Merge branch 'aevri/no_win32_fcntl' into 'master'bst-marge-bot2019-10-081-9/+18
|\ | | | | | | | | cli.py: no fcntl on Windows See merge request BuildStream/buildstream!1623