diff --git a/tests/API/OVAL/unittests/test_variable_in_filter.sh b/tests/API/OVAL/unittests/test_variable_in_filter.sh
index e725b32c4c..23f8862331 100755
--- a/tests/API/OVAL/unittests/test_variable_in_filter.sh
+++ b/tests/API/OVAL/unittests/test_variable_in_filter.sh
@@ -4,14 +4,23 @@
set -e
set -o pipefail
-result=`mktemp`
-stdout=`mktemp`
-stderr=`mktemp`
-echo "secret_key" > /tmp/key_file
+oval_def=$(mktemp)
+result=$(mktemp)
+stdout=$(mktemp)
+stderr=$(mktemp)
+temp_dir=$(mktemp -d)
-$OSCAP oval eval --results "$result" "$srcdir/test_variable_in_filter.xml" > "$stdout" 2> "$stderr"
+cleanup() {
+ rm -f "$oval_def" "$result" "$stdout" "$stderr"
+ rm -rf "$temp_dir"
+}
+trap cleanup EXIT
+
+cp "$srcdir/test_variable_in_filter.xml" "$oval_def"
+sed -i "s;TEMP_DIR_PLACEHOLDER;$temp_dir;" "$oval_def"
+echo "secret_key" > "$temp_dir/key_file"
+
+$OSCAP oval eval --results "$result" "$oval_def" > "$stdout" 2> "$stderr"
grep "Failed to convert OVAL state to SEXP" "$stderr" && exit 1
assert_exists 1 '//oval_results/results/system/definitions/definition[@result="true"]'
assert_exists 0 '//oval_results/results/system/definitions/definition[@result!="true"]'
-
-rm -f "$result" "$stdout" "$stderr" /tmp/key_file
diff --git a/tests/API/OVAL/unittests/test_variable_in_filter.xml b/tests/API/OVAL/unittests/test_variable_in_filter.xml
index 18101eb5f9..d136276212 100644
--- a/tests/API/OVAL/unittests/test_variable_in_filter.xml
+++ b/tests/API/OVAL/unittests/test_variable_in_filter.xml
@@ -24,7 +24,7 @@
- /tmp
+ TEMP_DIR_PLACEHOLDER
^key_file$
oval:x:ste:1
@@ -36,7 +36,7 @@
- /tmp
+ TEMP_DIR_PLACEHOLDER
^key_file$
0