SecdTestKeychainUtilities.c [plain text]
#include "SecdTestKeychainUtilities.h"
#include <regressions/test/testmore.h>
#include <utilities/SecFileLocations.h>
#include <utilities/SecCFWrappers.h>
#include <securityd/SecItemServer.h>
#include <Security/SecureObjectSync/SOSViews.h>
#include <CoreFoundation/CoreFoundation.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
void secd_test_setup_temp_keychain(const char* test_prefix, dispatch_block_t do_in_reset)
{
CFStringRef tmp_dir = CFStringCreateWithFormat(kCFAllocatorDefault, NULL, CFSTR("/tmp/%s.%X/"), test_prefix, arc4random());
CFStringRef keychain_dir = CFStringCreateWithFormat(kCFAllocatorDefault, NULL, CFSTR("%@Library/Keychains"), tmp_dir);
CFStringPerformWithCString(keychain_dir, ^(const char *keychain_dir_string) {
errno_t err = mkpath_np(keychain_dir_string, 0755);
ok(err == 0 || err == EEXIST, "Create temp dir %s (%d)", keychain_dir_string, err);
});
SetCustomHomeURLString(tmp_dir);
SecKeychainDbReset(do_in_reset);
CFReleaseNull(tmp_dir);
CFReleaseNull(keychain_dir);
}
CFStringRef kTestView1 = CFSTR("TestView1");
CFStringRef kTestView2 = CFSTR("TestView2");
void secd_test_setup_testviews(void) {
CFMutableSetRef testViews = CFSetCreateMutableForCFTypes(kCFAllocatorDefault);
CFSetAddValue(testViews, kTestView1);
CFSetAddValue(testViews, kTestView2);
SOSViewsSetTestViewsSet(testViews);
CFReleaseNull(testViews);
}
void secd_test_clear_testviews(void) {
SOSViewsSetTestViewsSet(NULL);
}