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
}