]> git.saurik.com Git - apple/security.git/blob - securityd/tests/testutils.h
Security-58286.260.20.tar.gz
[apple/security.git] / securityd / tests / testutils.h
1 /*
2 * Copyright (c) 2000-2001,2003-2004 Apple Computer, Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24
25 //
26 // testutils - utilities for unit test drivers
27 //
28 #ifndef _H_TESTUTILS
29 #define _H_TESTUTILS
30
31 #include "testclient.h"
32
33
34 //
35 // Global test state
36 //
37 extern bool verbose;
38
39
40 //
41 // Error and diagnostic drivers
42 //
43 void error(const char *fmt, ...) __attribute__((format(printf,1,2)));
44 void error(const CssmCommonError &error, const char *fmt, ...) __attribute__((format(printf,2,3)));
45 void detail(const char *fmt, ...) __attribute__((format(printf,1,2)));
46 void detail(const CssmCommonError &error, const char *msg);
47 void prompt(const char *msg);
48 void prompt();
49
50
51 //
52 // A self-building "fake" context.
53 // (Fake in that it was hand-made without involvement of CSSM.)
54 //
55 class FakeContext : public ::Context {
56 public:
57 FakeContext(CSSM_CONTEXT_TYPE type, CSSM_ALGORITHMS alg, uint32 count);
58 FakeContext(CSSM_CONTEXT_TYPE type, CSSM_ALGORITHMS alg, ...);
59 };
60
61
62 //
63 // A test driver class for ACL tests
64 //
65 class AclTester {
66 public:
67 AclTester(ClientSession &ss, const AclEntryInput *acl);
68
69 void testWrap(const AccessCredentials *cred, const char *howWrong = NULL);
70 void testEncrypt(const AccessCredentials *cred, const char *howWrong = NULL);
71
72 ClientSession &session;
73 KeyHandle keyRef;
74 };
75
76
77 //
78 // A test driver class for database tests
79 //
80 class DbTester {
81 public:
82 DbTester(ClientSession &ss, const char *path,
83 const AccessCredentials *cred, int timeout = 30, bool sleepLock = true);
84
85 operator DbHandle () const { return dbRef; }
86 void unlock(const char *howWrong = NULL);
87 void changePassphrase(const AccessCredentials *cred, const char *howWrong = NULL);
88
89 ClientSession &session;
90 DBParameters params;
91 DLDbIdentifier dbId;
92 DbHandle dbRef;
93 };
94
95
96 #endif //_H_TESTUTILS