diff options
author | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2012-06-28 16:10:39 +0100 |
---|---|---|
committer | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2012-06-28 18:48:56 +0100 |
commit | e673826fbab90b1bb3b1b93277cab0e489fec190 (patch) | |
tree | b4a9d24f37ea7cd56f4a1f069b6bb25c62a06ace | |
parent | 414516fbbc8e961ea6336597bfa8fc3d528fb327 (diff) | |
download | morph-e673826fbab90b1bb3b1b93277cab0e489fec190.tar.gz |
Add check for missing build depends in strata
This will make a build fail if the morphology is missing explicit
build dependencies.
Also fix test causes so that ./check passes.
-rwxr-xr-x | morphlib/app.py | 11 | ||||
-rwxr-xr-x | tests.as-root/arm-system-writes-kernel.script | 6 | ||||
-rwxr-xr-x | tests.as-root/make-patch.script | 6 | ||||
-rwxr-xr-x | tests.as-root/setup | 3 | ||||
-rwxr-xr-x | tests.as-root/system-overlap.script | 12 | ||||
-rw-r--r-- | tests.branching/edit-updates-stratum.stdout | 11 | ||||
-rwxr-xr-x | tests.branching/setup | 3 | ||||
-rwxr-xr-x | tests/build-stratum-with-submodules.script | 3 | ||||
-rwxr-xr-x | tests/morphless-chunks.script | 3 | ||||
-rwxr-xr-x | tests/setup | 3 | ||||
-rwxr-xr-x | tests/stratum-overlap-warns.setup | 12 |
11 files changed, 52 insertions, 21 deletions
diff --git a/morphlib/app.py b/morphlib/app.py index 851ee058..fb0ddbaf 100755 --- a/morphlib/app.py +++ b/morphlib/app.py @@ -458,7 +458,18 @@ class Morph(cliapp.Application): def _create_source_pool(self, lrc, rrc, triplet): pool = morphlib.sourcepool.SourcePool() + + def check_stratum(filename, morphology): + for source in morphology['sources']: + if source.get('build-depends', None) is None: + name = source.get('name', source.get('repo', 'unknown')) + raise morphlib.Error('Add build dependencies to ' + 'stratum %s for %s' % + (filename, name)) + def add_to_pool(reponame, ref, filename, absref, morphology): + if morphology['kind'] == 'stratum': + check_stratum(filename, morphology) source = morphlib.source.Source(reponame, ref, absref, morphology, filename) pool.add(source) diff --git a/tests.as-root/arm-system-writes-kernel.script b/tests.as-root/arm-system-writes-kernel.script index 500cedba..2a837af4 100755 --- a/tests.as-root/arm-system-writes-kernel.script +++ b/tests.as-root/arm-system-writes-kernel.script @@ -45,12 +45,14 @@ cat <<EOF >arm-stratum.morph { "name": "hello", "repo": "test:chunk-repo", - "ref": "farrokh" + "ref": "farrokh", + "build-depends": [] }, { "name": "linux", "repo": "test:kernel-repo", - "ref": "arm" + "ref": "arm", + "build-depends": ["hello"] } ] } diff --git a/tests.as-root/make-patch.script b/tests.as-root/make-patch.script index d312cb55..b5385fc0 100755 --- a/tests.as-root/make-patch.script +++ b/tests.as-root/make-patch.script @@ -28,12 +28,14 @@ cat <<EOF > "$DATADIR/morphs-repo/hello-stratum.morph" { "name": "hello", "repo": "test:chunk-repo", - "ref": "farrokh" + "ref": "farrokh", + "build-depends": [] }, { "name": "linux", "repo": "test:kernel-repo", - "ref": "master" + "ref": "master", + "build-depends": ["hello"] } ] } diff --git a/tests.as-root/setup b/tests.as-root/setup index 1d32b14d..2ee2d7fa 100755 --- a/tests.as-root/setup +++ b/tests.as-root/setup @@ -94,7 +94,8 @@ cat <<EOF > hello-stratum.morph { "name": "hello", "repo": "test:chunk-repo", - "ref": "farrokh" + "ref": "farrokh", + "build-depends": [] } ] } diff --git a/tests.as-root/system-overlap.script b/tests.as-root/system-overlap.script index 71b55e24..b6e3238e 100755 --- a/tests.as-root/system-overlap.script +++ b/tests.as-root/system-overlap.script @@ -45,12 +45,14 @@ cat <<EOF >foo-baz-stratum.morph { "name": "overlap-foo-baz", "repo": "test:chunk-repo", - "ref": "overlap" + "ref": "overlap", + "build-depends": [] }, { "name": "linux", "repo": "test:kernel-repo", - "ref": "master" + "ref": "master", + "build-depends": ["overlap-foo-baz"] } ] } @@ -63,12 +65,14 @@ cat <<EOF >foo-barqux-stratum.morph { "name": "overlap-foobar", "repo": "test:chunk-repo", - "ref": "overlap" + "ref": "overlap", + "build-depends": [] }, { "name": "overlap-fooqux", "repo": "test:chunk-repo", - "ref": "overlap" + "ref": "overlap", + "build-depends": ["overlap-foobar"] } ] } diff --git a/tests.branching/edit-updates-stratum.stdout b/tests.branching/edit-updates-stratum.stdout index 7dd3a8e2..71038a16 100644 --- a/tests.branching/edit-updates-stratum.stdout +++ b/tests.branching/edit-updates-stratum.stdout @@ -1,8 +1,8 @@ diff --git a/hello-stratum.morph b/hello-stratum.morph -index d7c0afe..af63df7 100644 +index 77fb1d0..c5ed672 100644 --- a/hello-stratum.morph +++ b/hello-stratum.morph -@@ -1,10 +1,13 @@ +@@ -1,12 +1,14 @@ { - "name": "hello-stratum", - "kind": "stratum", @@ -13,10 +13,13 @@ index d7c0afe..af63df7 100644 { - "name": "hello", - "ref": "master", -+ "build-depends": null, +- "repo": "baserock:hello", +- "build-depends": [] ++ "build-depends": [], + "morph": "hello", + "name": "hello", + "ref": "newbranch", - "repo": "baserock:hello" ++ "repo": "baserock:hello" } ] + } diff --git a/tests.branching/setup b/tests.branching/setup index 714be9da..3b9e7e7b 100755 --- a/tests.branching/setup +++ b/tests.branching/setup @@ -63,7 +63,8 @@ cat <<EOF > "$DATADIR/morphs/hello-stratum.morph" { "name": "hello", "ref": "master", - "repo": "baserock:hello" + "repo": "baserock:hello", + "build-depends": [] } ] } diff --git a/tests/build-stratum-with-submodules.script b/tests/build-stratum-with-submodules.script index 7d44caf6..c2d97817 100755 --- a/tests/build-stratum-with-submodules.script +++ b/tests/build-stratum-with-submodules.script @@ -53,7 +53,8 @@ cat <<EOF > "$morphs/submod-stratum.morph" { "name": "parent", "repo": "test:parent-repo", - "ref": "master" + "ref": "master", + "build-depends": [] } ] } diff --git a/tests/morphless-chunks.script b/tests/morphless-chunks.script index 584a4e09..956bd7c1 100755 --- a/tests/morphless-chunks.script +++ b/tests/morphless-chunks.script @@ -48,7 +48,8 @@ cat << EOF > alfred.morph { "name": "morphless", "repo": "test:morphless", - "ref": "master" + "ref": "master", + "build-depends": [] } ] } diff --git a/tests/setup b/tests/setup index 5a6668a3..179502f8 100755 --- a/tests/setup +++ b/tests/setup @@ -94,7 +94,8 @@ cat <<EOF > hello-stratum.morph { "name": "hello", "repo": "test:chunk-repo", - "ref": "farrokh" + "ref": "farrokh", + "build-depends": [] } ] } diff --git a/tests/stratum-overlap-warns.setup b/tests/stratum-overlap-warns.setup index 94aed05a..4dff3ddb 100755 --- a/tests/stratum-overlap-warns.setup +++ b/tests/stratum-overlap-warns.setup @@ -33,22 +33,26 @@ cat <<EOF >overlap-stratum.morph { "name": "dirs", "repo": "test:chunk-repo", - "ref": "overlap" + "ref": "overlap", + "build-depends": [] }, { "name": "overlap-foobar", "repo": "test:chunk-repo", - "ref": "overlap" + "ref": "overlap", + "build-depends": ["dirs"] }, { "name": "overlap-fooqux", "repo": "test:chunk-repo", - "ref": "overlap" + "ref": "overlap", + "build-depends": ["overlap-foobar"] }, { "name": "overlap-foo-baz", "repo": "test:chunk-repo", - "ref": "overlap" + "ref": "overlap", + "build-depends": ["overlap-fooqux"] } ] } |