From 45c19dad90e7c88ba42098d64b36a0ce1f368eba Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Sat, 2 Aug 2008 15:36:26 +0200
Subject: [PATCH] Testsuite: added compile error tests for the include
 extension.

---
 Makefile.am                                   |  1 +
 .../include/include-variables-error2.sieve    |  6 ----
 tests/extensions/include/errors.svtest        | 32 +++++++++++++++++++
 .../include/errors/variables-inactive.sieve   |  2 ++
 .../extensions/include/errors/variables.sieve | 18 +++++++++++
 5 files changed, 53 insertions(+), 6 deletions(-)
 delete mode 100644 src/lib-sieve/plugins/include/include-variables-error2.sieve
 create mode 100644 tests/extensions/include/errors.svtest
 rename src/lib-sieve/plugins/include/include-variables-error.sieve => tests/extensions/include/errors/variables-inactive.sieve (80%)
 create mode 100644 tests/extensions/include/errors/variables.sieve

diff --git a/Makefile.am b/Makefile.am
index b46d3673e..4f8803dc1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -37,6 +37,7 @@ test_cases = \
 	tests/extensions/variables/string.svtest \
 	tests/extensions/variables/errors.svtest \
 	tests/extensions/include/variables.svtest \
+	tests/extensions/include/errors.svtest \
 	tests/extensions/imapflags/basic.svtest \
 	tests/extensions/imapflags/hasflag.svtest \
 	tests/compile/compile.svtest \
diff --git a/src/lib-sieve/plugins/include/include-variables-error2.sieve b/src/lib-sieve/plugins/include/include-variables-error2.sieve
deleted file mode 100644
index f06a7df1a..000000000
--- a/src/lib-sieve/plugins/include/include-variables-error2.sieve
+++ /dev/null
@@ -1,6 +0,0 @@
-require "include";
-require "variables";
-import "frop";
-import ["friep", "frml"];
-export ["friep"];
-
diff --git a/tests/extensions/include/errors.svtest b/tests/extensions/include/errors.svtest
new file mode 100644
index 000000000..a32607060
--- /dev/null
+++ b/tests/extensions/include/errors.svtest
@@ -0,0 +1,32 @@
+require "vnd.dovecot.testsuite";
+
+require "relational";
+require "comparator-i;ascii-numeric";
+
+/*
+ * Using import/export without variables required
+ */
+
+test "Variables inactive" {
+	if test_compile "errors/variables-inactive.sieve" {
+		test_fail "compile should have failed";
+	}
+
+	if not test_error :count "eq" :comparator "i;ascii-numeric" "3" {
+		test_fail "wrong number of errors reported";
+	}
+}
+
+/*
+ * Generic variables errors
+ */
+
+test "Variables" {
+	if test_compile "errors/variables.sieve" {
+		test_fail "compile should have failed";
+	}
+
+	if not test_error :count "eq" :comparator "i;ascii-numeric" "5" {
+		test_fail "wrong number of errors reported";
+	}
+}
diff --git a/src/lib-sieve/plugins/include/include-variables-error.sieve b/tests/extensions/include/errors/variables-inactive.sieve
similarity index 80%
rename from src/lib-sieve/plugins/include/include-variables-error.sieve
rename to tests/extensions/include/errors/variables-inactive.sieve
index bb2b5bcb4..5506db357 100644
--- a/src/lib-sieve/plugins/include/include-variables-error.sieve
+++ b/tests/extensions/include/errors/variables-inactive.sieve
@@ -1,5 +1,7 @@
 require "include";
 require "fileinto";
+
+import "friep";
 export "frop";
 
 fileinto "Frop";
diff --git a/tests/extensions/include/errors/variables.sieve b/tests/extensions/include/errors/variables.sieve
new file mode 100644
index 000000000..ac6e9a6bd
--- /dev/null
+++ b/tests/extensions/include/errors/variables.sieve
@@ -0,0 +1,18 @@
+require "include";
+require "variables";
+
+# Importing unknown variable
+import "frop";
+
+# Importing unknown variable
+import ["friep", "frml"];
+
+# Not an error
+export ["friep"];
+
+import "friep";
+
+keep;
+
+export "friep";
+
-- 
GitLab