summaryrefslogtreecommitdiff
path: root/src/check.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/check.c')
-rw-r--r--src/check.c61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/check.c b/src/check.c
new file mode 100644
index 0000000..61cee45
--- /dev/null
+++ b/src/check.c
@@ -0,0 +1,61 @@
+
+#include "config.h"
+
+#include "p11-tests.h"
+
+int
+p11t_check_returns(const char *message, CK_RV have, CK_RV want)
+{
+ if(have != want)
+ {
+ p11t_msg_print("%s: expected %s but got %s", message,
+ p11t_msg_rv(want), p11t_msg_rv(have));
+ return 0;
+ }
+
+ return 1;
+}
+
+int
+p11t_check_padded_len(const char *message, const CK_UTF8CHAR_PTR padded,
+ CK_ULONG length)
+{
+ CK_ULONG i;
+
+ for(i = 0; i < length; ++i)
+ {
+ if(!padded[i])
+ {
+ p11t_msg_print("%s: not blank padded", message);
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+int
+p11t_check_ulong(const char *message, CK_ULONG have, CK_ULONG want)
+{
+ if(have != want)
+ {
+ p11t_msg_print("%s: expected 0x%08x but have 0x%08x", message,
+ want, have);
+ return 0;
+ }
+
+ return 1;
+}
+
+int
+p11t_check_mask(const char *message, CK_ULONG flags, CK_ULONG mask)
+{
+ if((flags & ~mask) != 0)
+ {
+ p11t_msg_print("%s: extra flags outside of mask: 0x08x",
+ (flags & ~mask));
+ return 0;
+ }
+
+ return 1;
+}