mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Objective-C
		
	
| #import "TestUtil.h"
 | |
| 
 | |
| NSObject* churnLock(void) {
 | |
|     static NSObject* shared = nil;
 | |
|     if (shared == nil) {
 | |
|         shared = [NSObject new];
 | |
|     }
 | |
|     return shared;
 | |
| }
 | |
| bool _testChurnHelper(int (^condition)(), NSTimeInterval delay) {
 | |
|     NSTimeInterval t = [TimeUtil time] + delay;
 | |
|     while ([TimeUtil time] < t) {
 | |
|         @synchronized(churnLock()) {
 | |
|             if (condition()) return true;
 | |
|         }
 | |
|         [NSRunLoop.currentRunLoop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
 | |
|     }
 | |
|     @synchronized(churnLock()) {
 | |
|         return condition();
 | |
|     }
 | |
| }
 | |
| NSData* increasingData(NSUInteger n) {
 | |
|     return increasingDataFrom(0, n);
 | |
| }
 | |
| NSData* increasingDataFrom(NSUInteger offset, NSUInteger n) {
 | |
|     uint8_t v[n];
 | |
|     for (NSUInteger i = 0; i < n; i++)
 | |
|         v[i] = (uint8_t)((i+offset) & 0xFF);
 | |
|     return [NSData dataWithBytes:v length:n];
 | |
| }
 | |
| NSData* sineWave(double frequency, double sampleRate, NSUInteger sampleCount) {
 | |
|     double tau = 6.283;
 | |
|     
 | |
|     int16_t samples[sampleCount];
 | |
|     for (NSUInteger i = 0; i < sampleCount; i++) {
 | |
|         samples[i] = (int16_t)(sin(frequency/sampleRate*i*tau)*(1<<15));
 | |
|     }
 | |
|     
 | |
|     return [NSData dataWithBytes:samples length:sizeof(samples)];
 | |
| }
 | |
| NSData* generatePseudoRandomData(NSUInteger length) {
 | |
|     NSMutableData* r = [NSMutableData dataWithLength:length];
 | |
|     for (int i = 0; i < 16; i++) {
 | |
|         ((uint8_t*)[r mutableBytes])[i] = (uint8_t)arc4random_uniform(256);
 | |
|     }
 | |
|     return r;
 | |
| }
 |