Use 10 (not 6) bits in source version fields B-E.
[class-dump.git] / UnitTests / TestCDNameForCPUType.m
blob3df8b01ebffa4f8bed94e7e5e749fe5ebe66132d
1 // -*- mode: ObjC -*-
3 //  This file is part of class-dump, a utility for examining the Objective-C segment of Mach-O files.
4 //  Copyright (C) 1997-2019 Steve Nygard.
6 #import <XCTest/XCTest.h>
8 #import "CDFile.h"
10 @interface TestCDNameForCPUType : XCTestCase
11 @end
13 @implementation TestCDNameForCPUType
15 - (void)setUp;
17     [super setUp];
18     
19     // Set-up code here.
22 - (void)tearDown;
24     // Tear-down code here.
25     
26     [super tearDown];
29 #pragma mark - ARM
31 - (void)test_armv6;
33     XCTAssertEqualObjects(CDNameForCPUType(CPU_TYPE_ARM, CPU_SUBTYPE_ARM_V6), @"armv6", @"The name for ARM subtype CPU_SUBTYPE_ARM_V6 should be 'armv6'");
36 - (void)test_armv7;
38     XCTAssertEqualObjects(CDNameForCPUType(CPU_TYPE_ARM, CPU_SUBTYPE_ARM_V7), @"armv7", @"The name for ARM subtype CPU_SUBTYPE_ARM_V7 should be 'armv7'");
41 - (void)test_armv7s;
43     XCTAssertEqualObjects(CDNameForCPUType(CPU_TYPE_ARM, 11), @"armv7s", @"The name for ARM subtype 11 should be 'armv7s'");
46 - (void)test_arm64;
48     XCTAssertEqualObjects(CDNameForCPUType(CPU_TYPE_ARM | CPU_ARCH_ABI64, CPU_SUBTYPE_ARM_ALL), @"arm64", @"The name for ARM 64-bit subtype CPU_SUBTYPE_ARM_ALL should be 'arm64'");
51 #pragma mark - Intel x86
53 - (void)test_i386;
55     XCTAssertEqualObjects(CDNameForCPUType(CPU_TYPE_X86, CPU_SUBTYPE_386), @"i386", @"The name for X86 subtype CPU_SUBTYPE_386 should be 'i386'");
58 - (void)test_x86_64;
60     XCTAssertEqualObjects(CDNameForCPUType(CPU_TYPE_X86_64, CPU_SUBTYPE_386), @"x86_64", @"The name for X86_64 subtype CPU_SUBTYPE_386 should be 'x86_64'");
63 - (void)test_x86_64_lib64;
65     XCTAssertEqualObjects(CDNameForCPUType(CPU_TYPE_X86_64, CPU_SUBTYPE_386|CPU_SUBTYPE_LIB64), @"x86_64", @"The name for X86_64 subtype CPU_SUBTYPE_386 with capability bits should be 'x86_64'");
68 @end