Skip to content

Commit d7f51cb

Browse files
authored
Merge branch 'dev' into copilot/update-ios-macos-version-docs
2 parents 588bce2 + 6a76032 commit d7f51cb

File tree

3 files changed

+57
-14
lines changed

3 files changed

+57
-14
lines changed

MSAL/test/app/ios/MSALTestAppAcquireTokenViewController.m

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@
5656
#define TEST_SYSTEM_WEBVIEW_TYPE_INDEX 1
5757
#define TEST_EMBEDDED_WEBVIEW_MSAL 0
5858
#define TEST_EMBEDDED_WEBVIEW_CUSTOM 1
59+
#define SEG_ON 0
60+
#define SEG_OFF 1
5961

6062
static NSString *const kDeviceIdClaimsValue = @"{\"access_token\":{\"deviceid\":{\"essential\":true}}}";
6163

@@ -92,6 +94,7 @@ @interface MSALTestAppAcquireTokenViewController () <UITextFieldDelegate>
9294
@property (nonatomic) IBOutlet UIView *wkWebViewContainer;
9395
@property (nonatomic) WKWebView *customWebview;
9496
@property (weak, nonatomic) IBOutlet UISegmentedControl *authSchemeSegmentControl;
97+
@property (weak, nonatomic) IBOutlet UISegmentedControl *atsThreadStarvationSegment;
9598
@property (nonatomic) NSString *accountIdentifier;
9699
@end
97100

@@ -167,7 +170,7 @@ - (void)viewWillAppear:(BOOL)animated
167170
self.navigationController.navigationBarHidden = YES;
168171
self.validateAuthoritySegmentControl.selectedSegmentIndex = settings.validateAuthority ? 0 : 1;
169172
self.instanceAwareSegmentControl.selectedSegmentIndex = 1; // NO.
170-
173+
self.atsThreadStarvationSegment.selectedSegmentIndex = SEG_OFF; // NO
171174
[_profileButton setTitle:[MSALTestAppProfileViewController currentTitle]
172175
forState:UIControlStateNormal];
173176
[_authorityButton setTitle:[MSALTestAppAuthorityViewController currentTitle]
@@ -428,6 +431,24 @@ - (IBAction)onAcquireTokenInteractiveButtonTapped:(__unused id)sender
428431

429432
- (IBAction)onAcquireTokenSilentButtonTapped:(__unused id)sender
430433
{
434+
435+
if (self.atsThreadStarvationSegment.selectedSegmentIndex == SEG_ON)
436+
{
437+
const int blockingCount = 66;
438+
const NSTimeInterval blockDuration = 20.0;
439+
440+
for (int i = 0; i < blockingCount; ++i) {
441+
int workerIndex = i;
442+
dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0), ^{
443+
NSDate *start = [NSDate date];
444+
NSLog(@"[worker %d] started at %@", workerIndex, start);
445+
// Simulate long blocking work - occupies the thread
446+
sleep(blockDuration);
447+
NSLog(@"[worker %d] finished at %@, ran for %f s", workerIndex, [NSDate date], [[NSDate date] timeIntervalSinceDate:start]);
448+
});
449+
}
450+
}
451+
431452
if (![self checkAccountSelected])
432453
{
433454
return;

MSAL/test/app/ios/MSALTestAppAcquireTokenViewController.storyboard

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
2+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="23727" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
33
<device id="retina6_1" orientation="portrait" appearance="light"/>
44
<dependencies>
55
<deployment identifier="iOS"/>
6-
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
6+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23721"/>
77
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
88
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
99
</dependencies>
@@ -17,13 +17,13 @@
1717
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
1818
<subviews>
1919
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Md9-M0-FKl">
20-
<rect key="frame" x="0.0" y="0.0" width="414" height="862"/>
20+
<rect key="frame" x="0.0" y="0.0" width="414" height="828"/>
2121
<subviews>
2222
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TBK-6m-6rt">
23-
<rect key="frame" x="0.0" y="60" width="414" height="742"/>
23+
<rect key="frame" x="0.0" y="60" width="414" height="708"/>
2424
</view>
2525
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gmv-e1-pk9">
26-
<rect key="frame" x="0.0" y="802" width="414" height="60"/>
26+
<rect key="frame" x="0.0" y="768" width="414" height="60"/>
2727
<subviews>
2828
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="EWB-9H-0ne">
2929
<rect key="frame" x="0.0" y="0.0" width="414" height="60"/>
@@ -63,16 +63,16 @@
6363
</constraints>
6464
</view>
6565
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dqB-h4-utQ">
66-
<rect key="frame" x="0.0" y="48" width="414" height="814"/>
66+
<rect key="frame" x="0.0" y="96" width="414" height="732"/>
6767
<subviews>
6868
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nD8-Re-oHc">
69-
<rect key="frame" x="0.0" y="0.0" width="414" height="784"/>
69+
<rect key="frame" x="0.0" y="0.0" width="414" height="702"/>
7070
<subviews>
7171
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vM0-VN-Vm6">
72-
<rect key="frame" x="0.0" y="0.0" width="414" height="868"/>
72+
<rect key="frame" x="0.0" y="0.0" width="414" height="911"/>
7373
<subviews>
7474
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="12" translatesAutoresizingMaskIntoConstraints="NO" id="QvZ-VB-tXG">
75-
<rect key="frame" x="20" y="20" width="374" height="828"/>
75+
<rect key="frame" x="20" y="20" width="374" height="871"/>
7676
<subviews>
7777
<stackView opaque="NO" contentMode="scaleToFill" spacing="12" translatesAutoresizingMaskIntoConstraints="NO" id="oeX-eO-Koe">
7878
<rect key="frame" x="0.0" y="0.0" width="374" height="34"/>
@@ -382,8 +382,29 @@
382382
</segmentedControl>
383383
</subviews>
384384
</stackView>
385+
<stackView opaque="NO" contentMode="scaleToFill" spacing="12" translatesAutoresizingMaskIntoConstraints="NO" id="yjx-Zt-LqF">
386+
<rect key="frame" x="0.0" y="632" width="374" height="31"/>
387+
<subviews>
388+
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ATS Thread Starvation" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TG6-kC-qFr" userLabel="ATS trd Starvation">
389+
<rect key="frame" x="0.0" y="0.0" width="112" height="31"/>
390+
<constraints>
391+
<constraint firstAttribute="width" constant="112" id="6lt-Uh-rGy"/>
392+
</constraints>
393+
<fontDescription key="fontDescription" type="system" pointSize="12"/>
394+
<nil key="textColor"/>
395+
<nil key="highlightedColor"/>
396+
</label>
397+
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" translatesAutoresizingMaskIntoConstraints="NO" id="62L-Vm-Yfr">
398+
<rect key="frame" x="124" y="0.0" width="250" height="32"/>
399+
<segments>
400+
<segment title="Yes"/>
401+
<segment title="No"/>
402+
</segments>
403+
</segmentedControl>
404+
</subviews>
405+
</stackView>
385406
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="12" translatesAutoresizingMaskIntoConstraints="NO" id="euI-bP-fOW">
386-
<rect key="frame" x="0.0" y="632" width="374" height="34"/>
407+
<rect key="frame" x="0.0" y="675" width="374" height="34"/>
387408
<subviews>
388409
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tSH-Rx-X2s">
389410
<rect key="frame" x="0.0" y="0.0" width="116.5" height="34"/>
@@ -409,7 +430,7 @@
409430
</subviews>
410431
</stackView>
411432
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="rBo-1H-H5p">
412-
<rect key="frame" x="0.0" y="678" width="374" height="150"/>
433+
<rect key="frame" x="0.0" y="721" width="374" height="150"/>
413434
<constraints>
414435
<constraint firstAttribute="height" constant="150" id="meA-TD-weO"/>
415436
</constraints>
@@ -447,7 +468,7 @@
447468
</constraints>
448469
</scrollView>
449470
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="T9E-F1-l3O">
450-
<rect key="frame" x="0.0" y="784" width="414" height="30"/>
471+
<rect key="frame" x="0.0" y="702" width="414" height="30"/>
451472
<subviews>
452473
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="tWi-d4-WNB">
453474
<rect key="frame" x="13.5" y="0.0" width="387" height="30"/>
@@ -513,6 +534,7 @@
513534
<connections>
514535
<outlet property="acquireButtonsViewBottomConstraint" destination="MeM-tM-vjr" id="gcj-MQ-VY5"/>
515536
<outlet property="acquireSilentButton" destination="B1a-QA-wzK" id="5Sx-IL-YWT"/>
537+
<outlet property="atsThreadStarvationSegment" destination="62L-Vm-Yfr" id="eQ5-8D-jYH"/>
516538
<outlet property="authSchemeSegmentControl" destination="PIA-l0-Kme" id="r4h-be-0gW"/>
517539
<outlet property="authorityButton" destination="VO4-Cz-Zs9" id="c2d-hA-UUm"/>
518540
<outlet property="claimsSegmentedControl" destination="InO-VA-HKm" id="3c7-EU-CFS"/>

0 commit comments

Comments
 (0)