| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This starts the git daemon procvess in inetd mode, so we can bind to an
ephemeral port, and still be able to report which port was used, so
we can construct git URIs using a non-standard port to talk to simulated
git servers.
|
|
|
|
|
|
| |
Update the edit-morph script used in the test suite to use morphloader
for saving/loading morphologies rather than morph2. Also remove some
unused code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
json only accepts unicode. Various APIs such as file paths and environment
variables allow binary data, so we need to support this properly.
This patch changes every[1] use of json.load or json.dump to escape
non-unicode data strings. This appears exactly as it used to if the
input was valid unicode, if it isn't it will insert \xabcd escapes in
the place of non-unicode data.
When loading back in, if json.load is told to unescape it with
`encoding='unicode-escape'` then it will convert it back correctly.
This change was primarily to support file paths that weren't valid
unicode, where this would choke and die. Now it works, but any tools
that parsed the metadata need to unescape the paths.
[1]: The interface to the remote repo cache uses json data, but I haven't
changes its json.load calls to unescape the data, since the repo
caches haven't been made to escape the data.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We want to move our morphologies in our definitions repository into
subdirectories, so they're more organised.
We'd prefer to only refer to morphologies by file path, rather than a
name that loosely corresponds to the file path, but we need to support
that for backwards compatibility until we can move all of our
morphologies into the definitions repository.
However, since we want to eventually remove this, and we want to ensure
that file paths work, we change the yarn tests to use file paths.
|
| |
|
|
|
|
| |
Be more verbose and exit with an error not an exception.
|
|
|
|
|
| |
Reviewed-by: Pedro Alvarez
Rubber-stamped-by: Richard Maw
|
|\
| |
| |
| |
| | |
Reviewed-by: Lars Wirzenius
Reviewed-by: Daniel Silverstone
|
| | |
|
|/
|
|
|
|
|
| |
Posix took away using length without ().
Reviewed-by: Richard Maw
Reviewed-by: Daniel Silverstone
|
|
|
|
|
|
| |
These define a vocabulary for altering a cluster morphology's fields,
since defining an implementation that is only used by one scenario for
setup is cumbersome.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This now means that the system morphology is not altered when chunks are
altered, so some tests had to change.
Since this uses the python warnings API, these warnings can be ignored
by running
python -W ignore:"stratum morphology" \
-W ignore:"system morphology" \
"$(which morph)" ...`
or turned into errors with
python -W error:"stratum morphology" \
-W error:"system morphology" \
"$(which morph)" ...`
|
|
|
|
|
| |
Refs should be completely omitted, and this is now the standard
behaviour, so there's little value in testing the behaviour separately.
|
| |
|
|
|
|
|
|
| |
This moves the GIVEN system $system uses $artifacts from $source to the
generic implements section, and the Python implementation into the
edit-morph helper script.
|
|
|
|
|
|
|
|
|
|
| |
It turns out that only the check-copyright-year script was exiting
properly, but it was not doing the deferred exit that other tests were
doing.
Other tests would set errors=1, then later check the result and exit
if it's non-zero, however the errors variable was set in a sub-shell,
since it was on the right-hand side of a pipe.
|
|\
| |
| |
| | |
Changed the error (exception) to list all obsolete fields.
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
Briefly reviewed by Jonathan Maw and Tiago Gomes, but all responsibility
is mine.
|
| |
| |
| |
| | |
Reported-by: Jonathan Maw
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These scenarios test the basics of most of the subcommands the
branch and merge plugin provides. They don't purport to be complete,
but give some indication that things work, and form a basis upon
which further things can be built. Yarn also isn't included in a
Baserock release yet, so we need to keep the cmdtests until Baserock
10 has been released.
The existing cmdtest tests are not modified by this: they are left
intact, until they can analysed in detail for things to be added to
the scenarios. After that, the cmdtest tests will start to go away.
Merging is not covered by these tests: it is not clear how merge should
work, and the current code is known to do the wrong thing in many cases.
Scenarios for merge will be added later.
Building is also not covered. Testing builds well needs some additional,
careful thinking, and that isn't ready for this patch series. It will
be added later.
|
| | |
|
|/ |
|
|
|
|
|
| |
It was misisng one case, making the test suite fail on computers
with suitable amounts of free space in the right filesystem.
|
|
|
|
|
|
|
|
| |
The size checks are irrelevant for most tests, since they tend to
produce tiny systems.
This still leaves the size checks themselves untested, however
doing so is arguably a system-wide test.
|
| |
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
To remove need of configuring git to check new system .gitconfig file
added to morph/scripts and check set to use this file.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
| |
That means that bootstrapping Baserock is currently not possible with
this branch of Morph, but there's no reason it cannot be bootstrapped
using an older version of Morph instead.
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
ssh://trove.baserock.org/baserock/baserock/morph into staging
This included a fixup for the copyright years and
the call to call_in_artifact_directory being a shade too long.
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| | |
git://git.baserock.org/baserock/baserock/morph
This merge includes modifying edit-morph to use self.output.write
instead of print for output.
|
| | |
|
|/
|
|
|
| |
This allows programmatic edits of certain kinds to morphologies, to
minimise the need for manual editing.
|
| |
|
|\ |
|
| | |
|
|\ \
| |/
|/|
| | |
Fixed long lines in scripts/bootstrap while merging.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
This functionality, of building a build-essential staging filler
using host tools rather than a staging chroot, will eventually be
done by Morph (and best of all, it will be done automatically when
changes are made to the build-essential stratum).
The script doesn't handle fetching source, so to use the script, you
require a base directory which must contain a 'gits' subdirectory
with a checkout of each chunk. Beyond this the build process is
handled by the script, except for installing fhs-dirs (which
requires root priviliges and must be done manually).
|
|
|
|
|
|
|
| |
This script has not worked for some time, and is not particularly
useful ('rm -r' can do pretty much the same thing).
Reviewed-By: Richard Maw <richard.maw@codethink.co.u>
|
|
|
|
|
|
|
| |
This reverts commit 053c0993bb62dd5e1a73d3367ea04c70874f3bd1.
It is needed, since tar.add(..., filter=func) is not available in
python2.7, so tarball system kind tests need to be disabled.
|
| |
|