#!/bin/bash

# support for ifname in named maps

tmpfile=$(mktemp)
if [ ! -w $tmpfile ] ; then
	echo "Failed to create tmp file" >&2
	exit 0
fi

trap "rm -rf $tmpfile" EXIT # cleanup if aborted

EXPECTED="table inet t {
	map m1 {
		type ifname : ipv4_addr
		elements = { \"eth0\" : 1.1.1.1 }
	}

	chain c {
		ip daddr set iifname map @m1
		ip daddr set oifname map @m1
	}
}"

set -e
echo "$EXPECTED" > $tmpfile
$NFT -f $tmpfile

GET="$($NFT list ruleset)"
if [ "$EXPECTED" != "$GET" ] ; then
        DIFF="$(which diff)"
        [ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
        exit 1
fi

