summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* .gitlab-ci.yml: Assert that tests without `usedevelop` worktlater/nocover-usedevelopTristan Maat2019-10-111-0/+10
| | | | | | | | | This is partially to prevent issues like #1121, but also to ensure our manifests can be packaged correctly. For now only the test suite is exercised, in the future it would be nice to expand this to other tests (such as the man pages, or source tests), but those don't have -nocover versions yet.
* setup.cfg: Restrict pytest's config search to the tests/ directoryTristan Maat2019-10-111-1/+1
| | | | | | | | This fixes issue #1121 - pytest would search the entire path for conftest.py, which in an isolated run would include conftest.py twice. This may still be an issue for sourcetest-nocover, but that isn't currently supported, so this shouldn't regress.
* 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
| * cli.py: no fcntl on WindowsAngelos Evripiotis2019-10-081-9/+18
|/ | | | | | | | | | | | | Work around the fact that we can't import 'fcntl' on Windows, and confine the workaround to as small a scope as we can. This enables us to run at least these commands on Windows: bst help bst init We can't run any commands that require a Platform object though, which is most commands.
* Merge branch 'bschubert/propagate-log-level-to-casd' into 'master'bst-marge-bot2019-10-073-4/+23
|\ | | | | | | | | | | | | Propagate buildstream's log level to buildbox-casd Closes #1155 See merge request BuildStream/buildstream!1621
| * cascache.py: add a 'log_level' parameter and use it to run buildbox-casdBenjamin Schubert2019-10-073-4/+23
|/ | | | | | | | | | This changes how we instantiate the CASCache by reusing the log level parameters from BuildStream and forward them to buildbox-casd. By default, buildbox-casd will now have '--log-level warning', and --verbose will enable 'info' and --debug will enable 'trace'. This way, we can easily tweak buildbox-casd's verbosity
* Merge branch 'chiaratolentino/fix-docs' into 'master'bst-marge-bot2019-10-0710-12/+14
|\ | | | | | | | | | | | | Fix incorrectly displaying bst output in docs Closes #1141 See merge request BuildStream/buildstream!1626
| * doc/Makefile: exit 1 if running bst command failschiaratolentino/fix-docsctolentino82019-10-071-3/+1
| |
| * doc/bst2html.py: Error out if bst command in doc failsctolentino82019-10-071-2/+5
| |
| * doc/sessions/junctions.run: Fix typo in 'remove-dir' optionctolentino82019-10-071-1/+1
| |
| * Update doc commands to use 'artifact checkout'ctolentino82019-10-071-1/+1
| |
| * Update doc commands to use 'source fetch'ctolentino82019-10-075-5/+5
| |
| * tox.ini: Add bst-plugins-experimental to docs depsctolentino82019-10-071-0/+1
|/
* Merge branch 'traveltissues/benchmark' into 'master'Darius Makovsky2019-10-0631-95/+73
|\ | | | | | | | | | | | | element.py: remove call to _source_cached() Closes #1150 and #1143 See merge request BuildStream/buildstream!1612
| * element.py: remove call to _source_cached()traveltissues/benchmarkDarius Makovsky2019-10-0530-29/+29
| | | | | | | | | | | | | | Remove call to Element._source_cached() in _calculate_cache_key and do not recalculate workspace keys. tests: shell browsing of workspaces is currently broken
| * element.py: remove concept of key instabilityDarius Makovsky2019-10-052-66/+44
|/ | | | | | | Workspace keys are determined by contained files at time of opening and are not forcibly reset tests: workspaces have keys when they're opened and are not recalculated
* Merge branch 'bschubert/casd-sigint' into 'master'bst-marge-bot2019-10-041-5/+11
|\ | | | | | | | | | | | | Better SIGINT handling for CASD Closes #1120 See merge request BuildStream/buildstream!1625
| * cascache.py: Block SIGINT in the CasUsageMonitor processBenjamin Schubert2019-10-041-2/+5
| | | | | | | | | | | | We don't want this process to be killed if someones CTRL+C BuildStream and the continues the build. We can therefore just ignore SIGINT there.
| * cascache.py: Block SIGINT in the buildbox-casd processBenjamin Schubert2019-10-041-3/+6
|/ | | | | | We don't want SIGINT to be forwarded to the buildbox-casd process, otherwise it would get killed if someone CTRL+C the BuildStream process and then continues the build, which would make everything fail.
* Merge branch 'aevri/job_sort_imports' into 'master'bst-marge-bot2019-10-041-4/+4
|\ | | | | | | | | _scheduler/jobs/job.py: sort imports See merge request BuildStream/buildstream!1622
| * _scheduler/jobs/job.py: sort importsAngelos Evripiotis2019-10-041-4/+4
|/
* Merge branch 'bschubert/casd-logs' into 'master'bst-marge-bot2019-10-042-3/+83
|\ | | | | | | | | | | | | cascache.py: Save casd logs in a file for retrieval Closes #1156 See merge request BuildStream/buildstream!1616