]> git.saurik.com Git - apple/security.git/blobdiff - Security/libsecurity_transform/misc/speed-test.mm
Security-57336.1.9.tar.gz
[apple/security.git] / Security / libsecurity_transform / misc / speed-test.mm
diff --git a/Security/libsecurity_transform/misc/speed-test.mm b/Security/libsecurity_transform/misc/speed-test.mm
deleted file mode 100644 (file)
index b33aea6..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2010 Apple Inc. All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_LICENSE_HEADER_END@
- */
-
-
-#import "speed-test.h"
-#include "SecTransform.h"
-#include "SecExternalSourceTransform.h"
-#include "SecNullTransform.h"
-#include <assert.h>
-
-@implementation speed_test
-
-@end
-
-UInt8 zeros[1024];
-
-typedef void (^push_block_t)(CFDataRef d);
-
-void timed_test(NSString *name, float seconds, SecTransformRef tr, push_block_t push) {
-       __block int num_out = 0;
-       __block int num_in = 0;
-       __block int timeout_out = -1;
-       __block int timeout_in = -1;
-       volatile __block bool done;
-       static CFDataRef z = CFDataCreateWithBytesNoCopy(NULL, zeros, sizeof(zeros), NULL);
-       
-       dispatch_after(dispatch_time(DISPATCH_TIME_NOW, static_cast<int64_t>(seconds * NSEC_PER_SEC)), dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
-               done = true;
-               timeout_out = num_out;
-               timeout_in = num_in;
-       });
-       
-       dispatch_group_t dg = dispatch_group_create();
-       dispatch_group_enter(dg);
-       
-       dispatch_queue_t q = dispatch_queue_create("counter", NULL);
-       
-       SecTransformExecuteAsync(tr, q, ^(CFTypeRef message, CFErrorRef error, Boolean isFinal) {
-               if (message) {
-                       num_out++;
-               }
-               if (error) {
-                       NSLog(@"Error %@ while running %@", error, name);
-               }
-               if (isFinal) {
-                       dispatch_group_leave(dg);
-               }
-       });
-       
-       while (!done) {
-               push(z);
-               num_in++;
-       }
-       push(NULL);
-       dispatch_group_wait(dg, DISPATCH_TIME_FOREVER);
-       NSString *m = [NSString stringWithFormat:@"%@ %d in, %d out times in %f seconds, %d stragglers\n", name, timeout_in, timeout_out, seconds, num_out - timeout_out];
-       [m writeToFile:@"/dev/stdout" atomically:NO encoding:NSUTF8StringEncoding error:NULL];
-}
-
-int main(int argc, char *argv[]) {
-       NSAutoreleasePool *ap = [[NSAutoreleasePool alloc] init];
-       float seconds = 5.0;
-       
-       {
-               SecTransformRef x = SecExternalSourceTransformCreate(NULL);
-               //SecTransformRef t = SecEncodeTransformCreate(kSecBase64Encoding, NULL);
-               SecTransformRef t = SecNullTransformCreate();
-               SecTransformRef g = SecTransformCreateGroupTransform();
-               assert(x && t && g);
-               SecTransformConnectTransforms(x, kSecTransformOutputAttributeName, t, kSecTransformInputAttributeName, g, NULL);
-               
-               timed_test(@"external source", seconds, t, ^(CFDataRef d){
-                       SecExternalSourceSetValue(x, d, NULL);
-               });
-               
-       }
-       
-       // This second test has issues with the stock transform framwork -- it don't think the graph is valid (missing input)
-       {
-               //SecTransformRef t = SecEncodeTransformCreate(kSecBase64Encoding, NULL);
-               SecTransformRef t = SecNullTransformCreate();
-               assert(t);
-               
-               timed_test(@"set INPUT", seconds, t, ^(CFDataRef d){
-                       SecTransformSetAttribute(t, kSecTransformInputAttributeName, d, NULL);
-               });
-       }
-}