summaryrefslogtreecommitdiff
path: root/tests.build
Commit message (Collapse)AuthorAgeFilesLines
* cache-key: Fix obscure cache key collisionRichard Maw2014-01-221-2/+2
| | | | | | | | | | | | | | | | | | | | If two systems with the same name (e.g. different repo/ref) depend on the same strata, then it will collide with systems which depend on different artifacts from that stratum, but the same number of artifacts. For example, if you checkout an existing branch and change the artifacts used by one of its strata, then your local changes won't be built. This is because the 'kids' field lists artifacts it depends on by their cache-key, which is now no longer sufficient to uniquely identify artifacts. The same number of artifacts issue is from it listing cache keys multiple times. The fix for this is to include the artifact name, so the 'kids' field is now a list of dicts, with artifact name and cache key. This is a dict rather than a tuple so that the generated /baserock metadata is more readable.
* cmdtests: Take into account new constructed artifactsRichard Maw2014-01-1621-92/+70
|
* Fix old cross-bootstrap testPedro Alvarez2013-12-201-1/+2
|
* Merge remote-tracking branch 'origin/danielfirth/RT189'Lars Wirzenius2013-10-081-2/+0
|\ | | | | | | Changed the error (exception) to list all obsolete fields.
| * Dropped support for 'system-kind' from system morphology filesDan Firth2013-09-271-1/+0
| |
| * Dropped support for 'disk-size' from system morphology files'Dan Firth2013-09-271-1/+0
| |
* | Add tests for building and deploying systems with null refsRichard Maw2013-09-262-0/+47
|/
* Add morph cross-bootstrapSam Thursfield2013-07-306-118/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cross-bootstrap is a way to build baserock on an architecture that does not currently have Baserock. It can be used by `morph cross-bootstrap <ARCH> <REPO> <REF> <MORPH>`, and will build an artifact that can be used as a root filesystem with a basic build environment with a script named `native-bootstrap` which will build and install every chunk in the system. If done with a devel system, this will give you a suitable environment for building a proper Baserock system. This does not currently provide a kernel for the target architecture. Apart from adding the cross-bootstrap plugin, it also makes the following changes: * Moves the lit of valid_archs into morphlib (instead of locally-scoped in MorphologyFactory) * BuildCommand takes an extra argument, build_env * split BuildCommand's get_artifact_object into create_source_pool and resolve_artifacts (plus changes things that use get_artifact_object to use the new way) * setup_mounts finds out whether to do so by whether build_mode is 'staging', instead of by whether the setting 'staging-chroot' is true. * Makes ChunkBuilder's get_sources use the morphlib.builder2.extract_sources() method, and moved set_mtime_recursively into morphlib.builder2, since it's not currently used anywhere else. * moved ChunkBuilder's get_commands into the Morphology class (plus changes to anything that used get_commands)
* qmake build system test still succeeds when qmake isn't foundRichard Dale2013-05-301-0/+6
|
* Add detection for cmake and qmake build systemsRichard Dale2013-05-294-0/+136
| | | | Add tests for cmake and qmake build systems
* Corrections to previous commitsRichard Holland2013-04-081-2/+2
| | | | | Removed trailing comma, corrected copyright year, used #pragma: no cover to exclude the exception class form coverage and allow ./check full to run.
* Added new test case for empty strataRichard Holland2013-04-083-0/+40
| | | | | Added a new test case that tests for new error from previous commit that changed the warning to an error when building an empty stratum.
* Use a relative symlink in test chunkLars Wirzenius2013-03-201-1/+1
| | | | | | The absolute one made the test suite fail in my VM, and is not the right thing to do anyway. $DESTDIR/usr/bin and $DESTDIR/bin are meant to be the same directory here, not $DESTDIR/usr/bin and /bin.
* Only build systems againSam Thursfield2013-03-143-2/+3
| | | | | We can no longer build strata individually because we don't know what architecture they are for.
* Don't install bootstrapped chunks when building artifacts in other strataSam Thursfield2013-03-132-20/+116
| | | | | | | | | | | When building a stratum artifact it's easy to only include chunks that were built in 'staging' mode. Constructing the staging area doesn't use that code path, though, so we need an extra hack to filter out those artifacts while building. It may be neater to express stratum build-depends as actual dependencies on the stratum artifact, rather than each of its constituent chunks as we do now.
* Don't include bootstrap chunks in output strataSam Thursfield2013-03-132-0/+75
| | | | | This is necessary so that the build-essential stratum doesn't end up containing three different compilers.
* Add 'prefix' property for chunks within strataSam Thursfield2013-03-134-2/+142
| | | | | | | | | Morph no longer supports setting the prefix using the --prefix argument / setting. This was only used in tests and during bootstrap. If a chunk build-depends on a chunk within a stratum which has a custom prefix, that prefix is appended to the PATH in the build environment.
* Add 'build-mode' field for chunks in a stratumSam Thursfield2013-03-133-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | Allowed values: staging: build with a staging chroot (default) test: build with the host's tools bootstrap: build with the host's tools, and do not include this chunk in the final stratum artifact In the past, 'normal mode' has been used to describe building a chunk with the host's tools. We don't want that mode to ever be used, because it is a huge hole in reproducability, but we need to keep it around to avoid making Morph's cmdtest suite depend on Baserock. Hopefully naming it 'test' should discourage potential abusers. It is unfortunate that the build tests now take a separate code path compared to real-world usage of Morph. However, this is necessary to avoid a circular dependency between Morph's test suite and the build-essential stratum in Baserock. We do whole-build testing of Baserock, too, so the 'staging' code path is still tested outside of Morph. However, testing a staging area requires populating it with at minimum a working shell, and this is a bit too complex to go in Morph's test suite.
* Allow building strata with 'morph build-morphology' againSam Thursfield2013-02-223-7/+6
| | | | This is mainly to fix bootstrap.
* buildcommand: Refuse to build chunks or strata out of contextSam Thursfield2013-02-202-0/+31
| | | | | | | | Building invididual chunks is bad because we have no idea what build mode to use. Building individual strata would work, but all of the stratum's build dependencies would need to be built first so there would be little time saved in any case. There is also no way to test them beyond checking that the build was successful.
* tests.build: Don't build individual chunks or strataSam Thursfield2013-02-2023-124/+76
| | | | | We can't rely on this being possible any more. It was mostly only used for testing in any case.
* Separate out build tests from general Morph testsSam Thursfield2013-02-2033-0/+1047