Skip to content

Commit a3f6f4b

Browse files
authored
* Support Xcode 15.0 Signed-off-by: Nan Wang <nanwang1101@yahoo.com> * add testBundleDisconnectTimeout Signed-off-by: Nan Wang <nanwang1101@yahoo.com> * try xcode 15.1 Signed-off-by: Nan Wang <nanwang1101@yahoo.com> * Fix test flakiness Signed-off-by: Nan Wang <nanwang1101@yahoo.com> * Split tests Signed-off-by: Nan Wang <nanwang1101@yahoo.com> --------- Signed-off-by: Nan Wang <nanwang1101@yahoo.com>
1 parent ff9f45f commit a3f6f4b

File tree

18 files changed

+240
-106
lines changed

18 files changed

+240
-106
lines changed

.github/workflows/PR.yml

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ jobs:
66
# First machine, runs BP tests batch 1
77
integration_tests1:
88
name: Instance Test 1
9-
runs-on: macos-12
9+
runs-on: macos-13
1010
steps:
1111
# actions/checkout@v2 but we use the SHA1 because tags can be re-written in git
1212
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
13-
- name: Select Xcode 14.0
14-
run: sudo xcode-select -s /Applications/Xcode_14.0.app
13+
- name: Select Xcode 15.1
14+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
1515
- name: Run Bluepill tests
1616
run: ./scripts/bluepill.sh instance_tests1
1717
- name: Capture xcresult files
@@ -25,12 +25,12 @@ jobs:
2525
# Second machine, runs BP tests batch 2
2626
integration_tests2:
2727
name: Instance Test 2
28-
runs-on: macos-12
28+
runs-on: macos-13
2929
steps:
3030
# actions/checkout@v2 but we use the SHA1 because tags can be re-written in git
3131
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
32-
- name: Select Xcode 14.0
33-
run: sudo xcode-select -s /Applications/Xcode_14.0.app
32+
- name: Select Xcode 15.1
33+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
3434
- name: Run Bluepill tests
3535
run: ./scripts/bluepill.sh instance_tests2
3636
- name: Capture xcresult files
@@ -41,15 +41,34 @@ jobs:
4141
path: build/**/*.xcresult
4242
retention-days: 14
4343

44-
# Third machine, runs Bluepill tests and makes release build
44+
# Third machine, runs BP tests batch 3
45+
integration_tests3:
46+
name: Instance Test 3
47+
runs-on: macos-13
48+
steps:
49+
# actions/checkout@v2 but we use the SHA1 because tags can be re-written in git
50+
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
51+
- name: Select Xcode 15.1
52+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
53+
- name: Run Bluepill tests
54+
run: ./scripts/bluepill.sh instance_tests3
55+
- name: Capture xcresult files
56+
if: ${{ always() }}
57+
uses: actions/upload-artifact@v2
58+
with:
59+
name: xcresults-bp-tests2
60+
path: build/**/*.xcresult
61+
retention-days: 14
62+
63+
# Fourth machine, runs Bluepill tests and makes release build
4564
build:
4665
name: Bluepill Test and build
47-
runs-on: macos-12
66+
runs-on: macos-13
4867
steps:
4968
# actions/checkout@v2 but we use the SHA1 because tags can be re-written in git
5069
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
51-
- name: Select Xcode 14.0
52-
run: sudo xcode-select -s /Applications/Xcode_14.0.app
70+
- name: Select Xcode 15.1
71+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
5372
- name: Run Bluepill tests
5473
run: ./scripts/bluepill.sh runner_tests
5574
- name: Capture xcresult files

.github/workflows/master.yml

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ jobs:
1111
# First machine, runs BP tests batch 1
1212
integration_tests1:
1313
name: Instance Test 1
14-
runs-on: macos-12
14+
runs-on: macos-13
1515
steps:
1616
# actions/checkout@v2 but we use the SHA1 because tags can be re-written in git
1717
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
18-
- name: Select Xcode 14.0
19-
run: sudo xcode-select -s /Applications/Xcode_14.0.app
18+
- name: Select Xcode 15.1
19+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
2020
- name: Run Bluepill tests
2121
run: ./scripts/bluepill.sh instance_tests1
2222
- name: Capture xcresult files
@@ -30,12 +30,12 @@ jobs:
3030
# Second machine, runs BP tests batch 2
3131
integration_tests2:
3232
name: Instance Test 2
33-
runs-on: macos-12
33+
runs-on: macos-13
3434
steps:
3535
# actions/checkout@v2 but we use the SHA1 because tags can be re-written in git
3636
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
37-
- name: Select Xcode 14.0
38-
run: sudo xcode-select -s /Applications/Xcode_14.0.app
37+
- name: Select Xcode 15.1
38+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
3939
- name: Run Bluepill tests
4040
run: ./scripts/bluepill.sh instance_tests2
4141
- name: Capture xcresult files
@@ -46,15 +46,34 @@ jobs:
4646
path: build/**/*.xcresult
4747
retention-days: 14
4848

49-
# Third machine, runs Bluepill tests and makes release build
49+
# Third machine, runs BP tests batch 3
50+
integration_tests3:
51+
name: Instance Test 3
52+
runs-on: macos-13
53+
steps:
54+
# actions/checkout@v2 but we use the SHA1 because tags can be re-written in git
55+
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
56+
- name: Select Xcode 15.1
57+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
58+
- name: Run Bluepill tests
59+
run: ./scripts/bluepill.sh instance_tests3
60+
- name: Capture xcresult files
61+
if: ${{ always() }}
62+
uses: actions/upload-artifact@v2
63+
with:
64+
name: xcresults-bp-tests2
65+
path: build/**/*.xcresult
66+
retention-days: 14
67+
68+
# Fourth machine, runs Bluepill tests and makes release build
5069
build:
5170
name: Bluepill Test and build
52-
runs-on: macos-12
71+
runs-on: macos-13
5372
steps:
5473
# actions/checkout@v2 but we use the SHA1 because tags can be re-written in git
5574
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
56-
- name: Select Xcode 14.0
57-
run: sudo xcode-select -s /Applications/Xcode_14.0.app
75+
- name: Select Xcode 15.1
76+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
5877
- name: Run Bluepill tests
5978
run: ./scripts/bluepill.sh runner_tests
6079
- name: Capture xcresult files

.github/workflows/release.yml

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ jobs:
99
# First machine, runs BP tests batch 1
1010
integration_tests1:
1111
name: Instance Test 1
12-
runs-on: macos-12
12+
runs-on: macos-13
1313
steps:
1414
# actions/checkout@v2 but we use the SHA1 because tags can be re-written in git
1515
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
16-
- name: Select Xcode 14.0
17-
run: sudo xcode-select -s /Applications/Xcode_14.0.app
16+
- name: Select Xcode 15.1
17+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
1818
- name: Run Bluepill tests
1919
run: ./scripts/bluepill.sh instance_tests1
2020
- name: Capture xcresult files
@@ -28,12 +28,12 @@ jobs:
2828
# Second machine, runs BP tests batch 2
2929
integration_tests2:
3030
name: Instance Test 2
31-
runs-on: macos-12
31+
runs-on: macos-13
3232
steps:
3333
# actions/checkout@v2 but we use the SHA1 because tags can be re-written in git
3434
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
35-
- name: Select Xcode 14.0
36-
run: sudo xcode-select -s /Applications/Xcode_14.0.app
35+
- name: Select Xcode 15.1
36+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
3737
- name: Run Bluepill tests
3838
run: ./scripts/bluepill.sh instance_tests2
3939
- name: Capture xcresult files
@@ -44,18 +44,37 @@ jobs:
4444
path: build/**/*.xcresult
4545
retention-days: 14
4646

47-
# Third machine, runs Bluepill tests and makes release build
47+
# Third machine, runs BP tests batch 3
48+
integration_tests3:
49+
name: Instance Test 3
50+
runs-on: macos-13
51+
steps:
52+
# actions/checkout@v2 but we use the SHA1 because tags can be re-written in git
53+
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
54+
- name: Select Xcode 15.1
55+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
56+
- name: Run Bluepill tests
57+
run: ./scripts/bluepill.sh instance_tests3
58+
- name: Capture xcresult files
59+
if: ${{ always() }}
60+
uses: actions/upload-artifact@v2
61+
with:
62+
name: xcresults-bp-tests2
63+
path: build/**/*.xcresult
64+
retention-days: 14
65+
66+
# Fourth machine, runs Bluepill tests and makes release build
4867
build:
4968
name: BP Test and build
50-
runs-on: macos-12
69+
runs-on: macos-13
5170
steps:
5271
# actions/checkout@v2 but we use the sha because tags can be rewritten in git
5372
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598
5473
- name: Report event trigger data
5574
run: |
5675
echo "Event ${{ github.event_name }}, ref: ${{ github.ref }}"
57-
- name: Select Xcode 14.0
58-
run: sudo xcode-select -s /Applications/Xcode_14.0.app
76+
- name: Select Xcode 15.1
77+
run: sudo xcode-select -s /Applications/Xcode_15.1.app
5978
- name: Run Bluepill tests
6079
run: ./scripts/bluepill.sh runner_tests
6180
- name: Capture xcresult files

bluepill/bluepill.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,9 +359,11 @@
359359
buildSettings = {
360360
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
361361
DEVELOPMENT_TEAM = 57Y47U492U;
362+
DSTROOT = "";
362363
FRAMEWORK_SEARCH_PATHS = /Library/Developer/PrivateFrameworks/;
363364
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/..\"";
364365
INFOPLIST_FILE = tests/Info.plist;
366+
INSTALL_ROOT = /;
365367
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
366368
OTHER_LDFLAGS = "";
367369
PRODUCT_BUNDLE_IDENTIFIER = LI.BluepillRunnerTests;
@@ -376,9 +378,11 @@
376378
buildSettings = {
377379
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
378380
DEVELOPMENT_TEAM = 57Y47U492U;
381+
DSTROOT = "";
379382
FRAMEWORK_SEARCH_PATHS = /Library/Developer/PrivateFrameworks/;
380383
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/..\"";
381384
INFOPLIST_FILE = tests/Info.plist;
385+
INSTALL_ROOT = /;
382386
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
383387
OTHER_LDFLAGS = "";
384388
PRODUCT_BUNDLE_IDENTIFIER = LI.BluepillRunnerTests;

bp/bp.xcodeproj/project.pbxproj

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@
132132
018D5C1025B4FF4200B0314B /* BPIntTestCase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BPIntTestCase.h; sourceTree = "<group>"; };
133133
018D5C1125B4FF4200B0314B /* BPIntTestCase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BPIntTestCase.m; sourceTree = "<group>"; };
134134
018D5C1C25B6696000B0314B /* BPReportTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BPReportTests.m; sourceTree = "<group>"; };
135+
71D4D0F82AEA1B4F00859482 /* SimDeviceBootInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SimDeviceBootInfo.h; sourceTree = "<group>"; };
135136
7A202A3D1DAED04900D935E3 /* BPExitStatus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BPExitStatus.h; sourceTree = "<group>"; };
136137
7A202A3F1DB0066100D935E3 /* BPWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BPWriter.h; sourceTree = "<group>"; };
137138
7A202A401DB0066100D935E3 /* BPWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BPWriter.m; sourceTree = "<group>"; };
@@ -527,6 +528,7 @@
527528
BA954F651D6D1AB3007D011D /* NSString-SIMPackedVersion.h */,
528529
BA954F671D6D1AB3007D011D /* NSUserDefaults-SimDefaults.h */,
529530
BA954F681D6D1AB3007D011D /* SimDevice.h */,
531+
71D4D0F82AEA1B4F00859482 /* SimDeviceBootInfo.h */,
530532
BA954F691D6D1AB3007D011D /* SimDeviceIO.h */,
531533
BA954F6A1D6D1AB3007D011D /* SimDeviceIOClient.h */,
532534
BA954F6B1D6D1AB3007D011D /* SimDeviceIOInterface-Protocol.h */,
@@ -1017,6 +1019,7 @@
10171019
buildSettings = {
10181020
DEPLOYMENT_LOCATION = NO;
10191021
"DEVELOPER_PRIVATE_FRAMEWORKS_DIR[arch=*]" = /Library/Developer/PrivateFrameworks/;
1022+
DSTROOT = "";
10201023
FRAMEWORK_SEARCH_PATHS = (
10211024
"\"/Library/Developer/PrivateFrameworks\"",
10221025
"\"$(PRIVATE_FRAMEWORKS_DIR)\"",
@@ -1031,6 +1034,7 @@
10311034
"$(SRCROOT)/src",
10321035
);
10331036
INFOPLIST_FILE = "$(SRCROOT)/src/Info.plist";
1037+
INSTALL_ROOT = /;
10341038
MACOSX_DEPLOYMENT_TARGET = 11.0;
10351039
OTHER_CFLAGS = "-DBP_USE_PRIVATE_FRAMEWORKS";
10361040
OTHER_LDFLAGS = (
@@ -1056,6 +1060,7 @@
10561060
buildSettings = {
10571061
DEPLOYMENT_LOCATION = NO;
10581062
"DEVELOPER_PRIVATE_FRAMEWORKS_DIR[arch=*]" = /Library/Developer/PrivateFrameworks/;
1063+
DSTROOT = "";
10591064
FRAMEWORK_SEARCH_PATHS = (
10601065
"\"/Library/Developer/PrivateFrameworks\"",
10611066
"\"$(PRIVATE_FRAMEWORKS_DIR)\"",
@@ -1070,6 +1075,7 @@
10701075
"$(SRCROOT)/src",
10711076
);
10721077
INFOPLIST_FILE = "$(SRCROOT)/src/Info.plist";
1078+
INSTALL_ROOT = /;
10731079
MACOSX_DEPLOYMENT_TARGET = 11.0;
10741080
OTHER_CFLAGS = "-DBP_USE_PRIVATE_FRAMEWORKS";
10751081
OTHER_LDFLAGS = (
@@ -1106,6 +1112,7 @@
11061112
CURRENT_PROJECT_VERSION = 1;
11071113
DEFINES_MODULE = YES;
11081114
"DEVELOPER_PRIVATE_FRAMEWORKS_DIR[arch=*]" = /Library/Developer/PrivateFrameworks;
1115+
DSTROOT = "";
11091116
DYLIB_COMPATIBILITY_VERSION = 1;
11101117
DYLIB_CURRENT_VERSION = 1;
11111118
FRAMEWORK_VERSION = A;
@@ -1115,6 +1122,7 @@
11151122
"$(SRCROOT)/src",
11161123
);
11171124
INFOPLIST_FILE = "$(SRCROOT)/src/Info.plist";
1125+
INSTALL_ROOT = /;
11181126
MACH_O_TYPE = staticlib;
11191127
MACOSX_DEPLOYMENT_TARGET = 11.0;
11201128
OTHER_LDFLAGS = "";
@@ -1143,6 +1151,7 @@
11431151
CURRENT_PROJECT_VERSION = 1;
11441152
DEFINES_MODULE = YES;
11451153
"DEVELOPER_PRIVATE_FRAMEWORKS_DIR[arch=*]" = /Library/Developer/PrivateFrameworks;
1154+
DSTROOT = "";
11461155
DYLIB_COMPATIBILITY_VERSION = 1;
11471156
DYLIB_CURRENT_VERSION = 1;
11481157
FRAMEWORK_VERSION = A;
@@ -1152,6 +1161,7 @@
11521161
"$(SRCROOT)/src",
11531162
);
11541163
INFOPLIST_FILE = "$(SRCROOT)/src/Info.plist";
1164+
INSTALL_ROOT = /;
11551165
MACH_O_TYPE = staticlib;
11561166
MACOSX_DEPLOYMENT_TARGET = 11.0;
11571167
OTHER_LDFLAGS = "";
@@ -1169,17 +1179,17 @@
11691179
buildSettings = {
11701180
COMBINE_HIDPI_IMAGES = YES;
11711181
DEVELOPMENT_TEAM = 57Y47U492U;
1182+
DSTROOT = "";
11721183
HEADER_SEARCH_PATHS = (
11731184
"$(SRCROOT)/..",
11741185
"$(SRCROOT)/src",
11751186
);
11761187
INFOPLIST_FILE = tests/Info.plist;
1188+
INSTALL_ROOT = /;
11771189
LD_RUNPATH_SEARCH_PATHS = "\"$(DEVELOPER_DIR)/Library/PrivateFrameworks\"";
11781190
MACOSX_DEPLOYMENT_TARGET = 11.0;
11791191
OTHER_CFLAGS = "-DBP_USE_PRIVATE_FRAMEWORKS";
11801192
OTHER_LDFLAGS = (
1181-
"-weak_framework",
1182-
DVTFoundation,
11831193
"-weak_framework",
11841194
CoreSimulator,
11851195
"-weak_framework",
@@ -1201,17 +1211,17 @@
12011211
buildSettings = {
12021212
COMBINE_HIDPI_IMAGES = YES;
12031213
DEVELOPMENT_TEAM = 57Y47U492U;
1214+
DSTROOT = "";
12041215
HEADER_SEARCH_PATHS = (
12051216
"$(SRCROOT)/..",
12061217
"$(SRCROOT)/src",
12071218
);
12081219
INFOPLIST_FILE = tests/Info.plist;
1220+
INSTALL_ROOT = /;
12091221
LD_RUNPATH_SEARCH_PATHS = "\"$(DEVELOPER_DIR)/Library/PrivateFrameworks\"";
12101222
MACOSX_DEPLOYMENT_TARGET = 11.0;
12111223
OTHER_CFLAGS = "-DBP_USE_PRIVATE_FRAMEWORKS";
12121224
OTHER_LDFLAGS = (
1213-
"-weak_framework",
1214-
DVTFoundation,
12151225
"-weak_framework",
12161226
CoreSimulator,
12171227
"-weak_framework",

bp/src/BPConfiguration.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ typedef NS_ENUM(NSInteger, BPProgram) {
107107
@property (nonatomic, strong) NSNumber *launchTimeout;
108108
@property (nonatomic, strong) NSNumber *deleteTimeout;
109109
@property (nonatomic) BOOL keepIndividualTestReports;
110+
@property (nonatomic, strong) NSNumber *testBundleDisconnectTimeout;
110111

111112
@property (nonatomic, strong) NSArray<NSString *> *commandLineArguments; // command line arguments for the app
112113
@property (nonatomic, strong) NSDictionary<NSString *, NSString *> *environmentVariables;

bp/src/BPConfiguration.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@ typedef NS_OPTIONS(NSUInteger, BPOptionType) {
150150
"Directory where videos of test runs will be saved. If not provided, videos are not recorded."},
151151
{368, "keep-passing-videos", BLUEPILL_BINARY | BP_BINARY, NO, NO, no_argument, "Off", BP_VALUE | BP_BOOL, "keepPassingVideos",
152152
"Whether recorded videos should be kept if the test passed. They are deleted by default."},
153+
{369, "test-bundle-disconnect-timeout", BLUEPILL_BINARY | BP_BINARY, NO, NO, required_argument, "60", BP_VALUE | BP_INTEGER, "testBundleDisconnectTimeout",
154+
"The maximum amount of time, in seconds, to wait while a test bundle is disconnected but might still generate output."},
153155
{0, 0, 0, 0, 0, 0, 0}
154156
};
155157

bp/src/BPConstants.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
#import <Foundation/Foundation.h>
1111

1212
#pragma mark - Version Constants
13-
#define BP_DEFAULT_XCODE_VERSION "14.0"
14-
#define BP_DEFAULT_RUNTIME "iOS 16.0"
15-
#define BP_DEFAULT_BASE_SDK "16.0"
13+
#define BP_DEFAULT_XCODE_VERSION "15.1"
14+
#define BP_DEFAULT_RUNTIME "iOS 17.2"
15+
#define BP_DEFAULT_BASE_SDK "17.2"
1616

17-
#define BP_DEFAULT_DEVICE_TYPE "iPhone 8"
17+
#define BP_DEFAULT_DEVICE_TYPE "iPhone SE (3rd generation)"
1818

1919
#define BP_DAEMON_PROTOCOL_VERSION 26
2020
#define BP_MAX_PROCESSES_PERCENT 0.75

0 commit comments

Comments
 (0)