Skip to content

Commit

Permalink
fix: Fix Dereferenced Garbage Pointer (#148)
Browse files Browse the repository at this point in the history
  • Loading branch information
BrandonStalnaker authored and einsteinx2 committed May 17, 2022
1 parent c95ddf6 commit d2c58e1
Show file tree
Hide file tree
Showing 22 changed files with 184 additions and 361 deletions.
133 changes: 68 additions & 65 deletions UnitTests/HasherTests.mm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#import "MPHasher.h"
#import "MPEnums.h"
#import "MPEvent.h"
#import "EventTypeName.h"
#import "MPBaseTestCase.h"
#import "MPIHasher.h"

Expand Down Expand Up @@ -137,157 +136,161 @@ - (void)testOverflowSessionIDHash {

- (void)testEventTypeHash {
NSString *hashString = @"49";
MPEventType eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
MPEventType eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeNavigation, @"Should have been equal.");

hashString = @"50";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeLocation, @"Should have been equal.");

hashString = @"51";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeSearch, @"Should have been equal.");

hashString = @"52";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeTransaction, @"Should have been equal.");

hashString = @"53";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeUserContent, @"Should have been equal.");

hashString = @"54";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeUserPreference, @"Should have been equal.");

hashString = @"55";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeSocial, @"Should have been equal.");

hashString = @"56";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeOther, @"Should have been equal.");

hashString = @"1567";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeAddToCart, @"Should have been equal.");

hashString = @"1568";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeRemoveFromCart, @"Should have been equal.");

hashString = @"1569";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeCheckout, @"Should have been equal.");

hashString = @"1570";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeCheckoutOption, @"Should have been equal.");

hashString = @"1571";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeClick, @"Should have been equal.");

hashString = @"1572";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeViewDetail, @"Should have been equal.");

hashString = @"1573";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypePurchase, @"Should have been equal.");

hashString = @"1574";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeRefund, @"Should have been equal.");

hashString = @"1575";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypePromotionView, @"Should have been equal.");

hashString = @"1576";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypePromotionClick, @"Should have been equal.");

hashString = @"1598";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeAddToWishlist, @"Should have been equal.");

hashString = @"1599";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeRemoveFromWishlist, @"Should have been equal.");

hashString = @"1600";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeImpression, @"Should have been equal.");

hashString = @"Invalid hash";
eventType = (MPEventType)mParticle::EventTypeName::eventTypeForHash(string([hashString cStringUsingEncoding:NSUTF8StringEncoding]));
eventType = [MPIHasher eventTypeForHash:hashString];
XCTAssertEqual(eventType, MPEventTypeOther, @"Should have been equal.");
}

- (void)testHashEventType {
std::string hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Navigation);
XCTAssertEqual(hashString, "49", @"Should have been equal.");
NSString *hashTestString = [MPIHasher hashEventType:MPEventTypeNavigation];

XCTAssertEqualObjects(hashTestString, @"49", @"Should have been equal.");

hashTestString = [MPIHasher hashEventType:MPEventTypeLocation];
XCTAssertEqualObjects(hashTestString, @"50", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Location);
XCTAssertEqual(hashString, "50", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeSearch];
XCTAssertEqualObjects(hashTestString, @"51", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Search);
XCTAssertEqual(hashString, "51", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeTransaction];
XCTAssertEqualObjects(hashTestString, @"52", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Transaction);
XCTAssertEqual(hashString, "52", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeUserContent];
XCTAssertEqualObjects(hashTestString, @"53", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Content);
XCTAssertEqual(hashString, "53", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeUserPreference];
XCTAssertEqualObjects(hashTestString, @"54", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Preference);
XCTAssertEqual(hashString, "54", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeSocial];
XCTAssertEqualObjects(hashTestString, @"55", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Social);
XCTAssertEqual(hashString, "55", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeOther];
XCTAssertEqualObjects(hashTestString, @"56", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Other);
XCTAssertEqual(hashString, "56", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeMedia];
XCTAssertEqualObjects(hashTestString, @"57", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::AddToCart);
XCTAssertEqual(hashString, "1567", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeAddToCart];
XCTAssertEqualObjects(hashTestString, @"1567", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::RemoveFromCart);
XCTAssertEqual(hashString, "1568", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeRemoveFromCart];
XCTAssertEqualObjects(hashTestString, @"1568", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Checkout);
XCTAssertEqual(hashString, "1569", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeCheckout];
XCTAssertEqualObjects(hashTestString, @"1569", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::CheckoutOption);
XCTAssertEqual(hashString, "1570", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeCheckoutOption];
XCTAssertEqualObjects(hashTestString, @"1570", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Click);
XCTAssertEqual(hashString, "1571", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeClick];
XCTAssertEqualObjects(hashTestString, @"1571", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::ViewDetail);
XCTAssertEqual(hashString, "1572", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeViewDetail];
XCTAssertEqualObjects(hashTestString, @"1572", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Purchase);
XCTAssertEqual(hashString, "1573", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypePurchase];
XCTAssertEqualObjects(hashTestString, @"1573", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Refund);
XCTAssertEqual(hashString, "1574", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeRefund];
XCTAssertEqualObjects(hashTestString, @"1574", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::PromotionView);
XCTAssertEqual(hashString, "1575", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypePromotionView];
XCTAssertEqualObjects(hashTestString, @"1575", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::PromotionClick);
XCTAssertEqual(hashString, "1576", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypePromotionClick];
XCTAssertEqualObjects(hashTestString, @"1576", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::AddToWishlist);
XCTAssertEqual(hashString, "1598", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeAddToWishlist];
XCTAssertEqualObjects(hashTestString, @"1598", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::RemoveFromWishlist);
XCTAssertEqual(hashString, "1599", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeRemoveFromWishlist];
XCTAssertEqualObjects(hashTestString, @"1599", @"Should have been equal.");

hashString = mParticle::EventTypeName::hashForEventType(mParticle::EventType::Impression);
XCTAssertEqual(hashString, "1600", @"Should have been equal.");
hashTestString = [MPIHasher hashEventType:MPEventTypeImpression];
XCTAssertEqualObjects(hashTestString, @"1600", @"Should have been equal.");
}

@end
2 changes: 1 addition & 1 deletion UnitTests/MPPersistenceControllerTests.mm
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ - (void)testPlatformSqliteAssumptions {
XCTAssertEqual(safe, 2);
const char *version = sqlite3_libversion();
NSString *stringVersion = [NSString stringWithCString:version encoding:NSUTF8StringEncoding];
NSArray *validVersions = @[@"3.19.3", @"3.22.0", @"3.14.0", @"3.16.0", @"3.24.0", @"3.28.0", @"3.32.3", @"3.36.0"];
NSArray *validVersions = @[@"3.19.3", @"3.22.0", @"3.14.0", @"3.16.0", @"3.24.0", @"3.28.0", @"3.32.3", @"3.36.0", @"3.37.0"];
XCTAssertTrue([validVersions containsObject:stringVersion]);
}

Expand Down
Loading

0 comments on commit d2c58e1

Please sign in to comment.