Blame tests/DS/test_ds_common.sh
|
Packit Service |
569379 |
#!/usr/bin/env bash
|
|
Packit Service |
569379 |
|
|
Packit Service |
569379 |
function assert_correct_xlinks()
|
|
Packit Service |
569379 |
{
|
|
Packit Service |
569379 |
local DS=$1
|
|
Packit Service |
569379 |
local stderr=$(mktemp)
|
|
Packit Service |
569379 |
$OSCAP info $DS 2> $stderr
|
|
Packit Service |
569379 |
diff $stderr /dev/null
|
|
Packit Service |
569379 |
rm $stderr
|
|
Packit Service |
569379 |
|
|
Packit Service |
569379 |
# First of all make sure that there is at least one ds:component-ref.
|
|
Packit Service |
569379 |
[ "$($XPATH $DS 'count(//*[local-name()="component-ref"])')" != "0" ]
|
|
Packit Service |
569379 |
# We want to catch cases when this element has different namespace.
|
|
Packit Service |
569379 |
local ns=$($XPATH $DS 'name(//*[local-name()="component-ref"][1])' | sed 's/:.*$/:/')
|
|
Packit Service |
569379 |
[ "$ns" != "component-ref" ] || ns=""
|
|
Packit Service |
569379 |
# Ensure there is at least some xlink.
|
|
Packit Service |
569379 |
[ "`$XPATH $DS \"count(//${ns}component-ref/@xlink:href)\"`" != "0" ]
|
|
Packit Service |
569379 |
# This asserts that there is none component-ref/xlink:href broken.
|
|
Packit Service |
569379 |
# Previously, we have seen datastreams with broken xlinks (see trac#286).
|
|
Packit Service |
569379 |
[ "`$XPATH $DS \"count(//${ns}component-ref[substring(@xlink:href, 2, 10000) != (//${ns}component/@${ns}id | //${ns}extended-component/@${ns}id)])\"`" == "0" ]
|
|
Packit Service |
569379 |
}
|