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;
|
|
}
|
|
sleep(1);
|
|
}
|
|
@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;
|
|
}
|