Skip to content

Add Adobe Acrobat Pro as a Windows FMA#43829

Draft
allenhouchins wants to merge 4 commits intomainfrom
allenhouchins-adobe-fma-windows
Draft

Add Adobe Acrobat Pro as a Windows FMA#43829
allenhouchins wants to merge 4 commits intomainfrom
allenhouchins-adobe-fma-windows

Conversation

@allenhouchins
Copy link
Copy Markdown
Member

Add Winget support for Adobe Acrobat Pro: new input JSON, install/uninstall PowerShell scripts, and Windows output manifest (with script refs and installer metadata). Rename Homebrew input and apps listing to "Adobe Acrobat Pro" and add a Windows entry to apps.json. Improve winget ingester to try version directories in descending order, skip grouping dirs that don't contain expected manifests, fetch and unmarshal installer and locale manifests with better logging and error handling, and return a clear error when no valid version manifest is found.

Add Winget support for Adobe Acrobat Pro: new input JSON, install/uninstall PowerShell scripts, and Windows output manifest (with script refs and installer metadata). Rename Homebrew input and apps listing to "Adobe Acrobat Pro" and add a Windows entry to apps.json. Improve winget ingester to try version directories in descending order, skip grouping dirs that don't contain expected manifests, fetch and unmarshal installer and locale manifests with better logging and error handling, and return a clear error when no valid version manifest is found.
fleet-release
fleet-release previously approved these changes Apr 21, 2026
Rename the unique_identifier from 'Adobe Acrobat (64-bit)' to 'Adobe Acrobat DC (64-bit)'. Update the Windows detection SQL queries to match the new name so existence and patched checks work correctly. Affected files: ee/maintained-apps/inputs/winget/adobe-acrobat-pro.json, ee/maintained-apps/outputs/adobe-acrobat-pro/windows.json, ee/maintained-apps/outputs/apps.json.
fleet-release
fleet-release previously approved these changes Apr 21, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 21, 2026

Codecov Report

❌ Patch coverage is 58.69565% with 19 lines in your changes missing coverage. Please review.
✅ Project coverage is 66.91%. Comparing base (6d4e0b5) to head (95ac6ec).

Files with missing lines Patch % Lines
ee/maintained-apps/ingesters/winget/ingester.go 58.69% 11 Missing and 8 partials ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main   #43829   +/-   ##
=======================================
  Coverage   66.91%   66.91%           
=======================================
  Files        2601     2601           
  Lines      208982   209001   +19     
  Branches     9305     9305           
=======================================
+ Hits       139842   139856   +14     
- Misses      56398    56402    +4     
- Partials    12742    12743    +1     
Flag Coverage Δ
backend 68.70% <58.69%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Make Acrobat uninstaller detection more robust and update metadata to the new script ref. app_commander.go: clarify the error log when an app remains after uninstall. adobe_acrobat_pro_uninstall.ps1: support both "Adobe Acrobat (64-bit)" and "Adobe Acrobat DC (64-bit)", guard against missing DisplayName, and ensure publisher filtering is applied before matching. windows.json: bump uninstall_script_ref to c94fe3ab and replace the embedded ref with the updated uninstall script.
@github-actions
Copy link
Copy Markdown
Contributor

Script Diff Results

ee/maintained-apps/outputs/adobe-acrobat-pro/windows.json

=== Install Script (no changes) ===
=== Uninstall // 96f53707 -> c94fe3ab ===

--- /tmp/old.KzzCYS	2026-04-21 03:10:28.351368440 +0000
+++ /tmp/new.P2JPc6	2026-04-21 03:10:28.352368442 +0000
@@ -1,6 +1,7 @@
-# Locate Adobe Acrobat Pro uninstaller from registry and execute it silently
+# Locate Adobe Acrobat Pro uninstaller from registry and execute it silently.
+# DisplayName is "Adobe Acrobat DC (64-bit)" on DC installs and may be "Adobe Acrobat (64-bit)" on others.
 
-$displayName = "Adobe Acrobat (64-bit)"
+$displayNames = @("Adobe Acrobat (64-bit)", "Adobe Acrobat DC (64-bit)")
 $publisher = "Adobe"
 
 $paths = @(
@@ -12,7 +13,13 @@
 $uninstall = $null
 foreach ($p in $paths) {
     $items = Get-ItemProperty "$p\*" -ErrorAction SilentlyContinue | Where-Object {
-        $_.DisplayName -and ($_.DisplayName -eq $displayName -or $_.DisplayName -like "$displayName*") -and ($publisher -eq "" -or $_.Publisher -eq $publisher)
+        $dn = $_.DisplayName
+        if (-not $dn) { return $false }
+        if ($publisher -ne "" -and $_.Publisher -ne $publisher) { return $false }
+        foreach ($d in $displayNames) {
+            if ($dn -eq $d -or $dn -like "$d*") { return $true }
+        }
+        $false
     }
     if ($items) { $uninstall = $items | Select-Object -First 1; break }
 }

@qodo-free-for-open-source-projects
Copy link
Copy Markdown

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: test-go (mysql, mysql:9.5.0) / test

Failed stage: Run Go Tests [❌]

Failed test name: TestQueries/DeleteMany

Failure summary:

The GitHub Action failed because Go tests in ./server/datastore/mysql/... returned a non-zero exit
code due to a failing test.
- Failing test: TestQueries/DeleteMany in
server/datastore/mysql/queries_test.go (error reported at line 370).
- Root error: get live query
stats: sql: Scan error on column index 7, name "last_executed": unsupported Scan, storing
driver.Value type into type *time.Time.
This indicates the SQL query returned NULL for the
last_executed column, but the code/test attempted to scan it into a *time.Time that does not accept
a NULL value in this context (likely needs sql.NullTime or query-side COALESCE).
- Follow-on
failure: the test then timed out waiting for stats deletion (queries_test.go:384: Timeout: stats not
deleted for testQueriesDeleteMany), which is consistent with the earlier scan error preventing the
stats-checking logic from succeeding.

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

1795:  �[36;1mattempt=1�[0m
1796:  �[36;1m�[0m
1797:  �[36;1mwhile [ $attempt -le $max_attempts ]; do�[0m
1798:  �[36;1m  echo "Attempt $attempt of $max_attempts"�[0m
1799:  �[36;1m�[0m
1800:  �[36;1m  # Try to connect to MySQL�[0m
1801:  �[36;1m  if wait_for_mysql "mysql_test"; then�[0m
1802:  �[36;1m    # If MySQL is ready, try to connect to MySQL replica�[0m
1803:  �[36;1m    if wait_for_mysql "mysql_replica_test"; then�[0m
1804:  �[36;1m      # Both are ready, we're done�[0m
1805:  �[36;1m      echo "All MySQL connections successful"�[0m
1806:  �[36;1m      exit 0�[0m
1807:  �[36;1m    fi�[0m
1808:  �[36;1m  fi�[0m
1809:  �[36;1m�[0m
1810:  �[36;1m  # If we get here, at least one connection failed�[0m
1811:  �[36;1m  echo "Failed to connect to MySQL on attempt $attempt"�[0m
1812:  �[36;1m�[0m
1813:  �[36;1m  if [ $attempt -lt $max_attempts ]; then�[0m
1814:  �[36;1m    echo "Restarting containers and trying again..."�[0m
1815:  �[36;1m    restart_containers�[0m
1816:  �[36;1m  else�[0m
1817:  �[36;1m    echo "Maximum attempts reached. Failing the job."�[0m
1818:  �[36;1m    exit 1�[0m
...

1880:  RUN_TESTS_ARG: 
1881:  CI_TEST_PKG: mysql
1882:  NEED_DOCKER: 1
1883:  ARTIFACT_PREFIX: mysql-mysql9.5.0
1884:  GOTOOLCHAIN: local
1885:  ##[endgroup]
1886:  make .run-go-tests PKG_TO_TEST="./server/datastore/mysql/..."
1887:  make[1]: Entering directory '/home/runner/work/fleet/fleet'
1888:  Running Go tests with gotestsum:
1889:  gotestsum --format=testdox --jsonfile=/tmp/test-output.json -- -tags full,fts5,netgo -run=  -v -race=false -timeout=20m  -parallel 8 -coverprofile=coverage.txt -covermode=atomic -coverpkg=github.com/fleetdm/fleet/v4/... ././server/datastore/mysql/... 
1890:  go: downloading github.com/aws/aws-sdk-go-v2/feature/rds/auth v1.6.16
1891:  go: downloading github.com/shogo82148/rdsmysql/v2 v2.5.0
1892:  go: downloading github.com/WatchBeam/clock v0.0.0-20170901150240-b08e6b4da7ea
1893:  go: downloading github.com/doug-martin/goqu/v9 v9.18.0
1894:  go: downloading github.com/google/go-cmp v0.7.0
1895:  go: downloading github.com/hashicorp/go-multierror v1.1.1
1896:  go: downloading github.com/olekukonko/tablewriter v0.0.5
...

1957:  go: downloading github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
1958:  go: downloading github.com/prometheus/client_golang v1.21.1
1959:  go: downloading go.opentelemetry.io/otel/sdk v1.43.0
1960:  go: downloading github.com/agnivade/levenshtein v1.2.1
1961:  go: downloading github.com/sirupsen/logrus v1.9.3
1962:  go: downloading github.com/go-ini/ini v1.67.0
1963:  go: downloading github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb
1964:  go: downloading github.com/prometheus/client_model v0.6.1
1965:  go: downloading github.com/beorn7/perks v1.0.1
1966:  go: downloading github.com/prometheus/common v0.62.0
1967:  go: downloading github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
1968:  github.com/fleetdm/fleet/v4/server/datastore/mysql/migrations/data:
1969:  github.com/fleetdm/fleet/v4/server/datastore/mysql/rdsauth:
1970:  github.com/fleetdm/fleet/v4/server/datastore/mysql/migrations/tables:
1971:  �[32m✓�[0m Basic migration step (0.00s)
1972:  �[32m✓�[0m Basic migration step error (0.00s)
1973:  �[32m✓�[0m Basic migration step success (0.00s)
1974:  �[32m✓�[0m Collation (10.17s)
1975:  �[32m✓�[0m Incremental migration step (0.08s)
1976:  �[32m✓�[0m Incremental migration step count error is returned (0.00s)
1977:  �[32m✓�[0m Incremental migration step executor error is returned (0.00s)
1978:  �[32m✓�[0m Incremental migration step increment updates progress (0.03s)
...

2261:  �[32m✓�[0m Up 20260316120007 okta not configured (13.51s)
2262:  �[32m✓�[0m Up 20260316120007 one ca enabled team (31.46s)
2263:  �[32m✓�[0m Up 20260316120007 teams with missing ca config (30.00s)
2264:  �[32m✓�[0m Up 20260316120010 (33.44s)
2265:  �[32m✓�[0m Up 20260318184559 (33.40s)
2266:  �[32m✓�[0m Up 20260323144117 (31.80s)
2267:  �[32m✓�[0m Up 20260324161944 (31.57s)
2268:  �[32m✓�[0m Up 20260326210603 (32.89s)
2269:  �[32m✓�[0m Up 20260401153503 many assignments (21.09s)
2270:  �[32m✓�[0m Up 20260401153503 no assignment (30.49s)
2271:  �[32m✓�[0m Up 20260401153503 some assignments (32.59s)
2272:  �[32m✓�[0m Up 20260409153715 (12.27s)
2273:  �[32m✓�[0m Up 20260409153717 (9.13s)
2274:  �[32m✓�[0m With steps (0.00s)
2275:  �[32m✓�[0m With steps empty steps succeeds (0.00s)
2276:  �[32m✓�[0m With steps error stops execution (0.00s)
2277:  �[32m✓�[0m With steps integration with basic migration step (0.00s)
...

2313:  �[32m✓�[0m Activity list host upcoming activities 1: fleet. list options{ page: 0x 1, per page: 0x 2, order key:"", order direction: 0, match query:"", after:"", include metadata:false, test secondary order key:"", test secondary order direction: 0} (0.02s)
2314:  �[32m✓�[0m Activity list host upcoming activities 1: fleet. list options{ page: 0x 1, per page: 0x 4, order key:"", order direction: 0, match query:"", after:"", include metadata:false, test secondary order key:"", test secondary order direction: 0} (0.02s)
2315:  �[32m✓�[0m Activity list host upcoming activities 1: fleet. list options{ page: 0x 2, per page: 0x 2, order key:"", order direction: 0, match query:"", after:"", include metadata:false, test secondary order key:"", test secondary order direction: 0} (0.02s)
2316:  �[32m✓�[0m Activity list host upcoming activities 1: fleet. list options{ page: 0x 2, per page: 0x 4, order key:"", order direction: 0, match query:"", after:"", include metadata:false, test secondary order key:"", test secondary order direction: 0} (0.02s)
2317:  �[32m✓�[0m Activity list host upcoming activities 1: fleet. list options{ page: 0x 3, per page: 0x 2, order key:"", order direction: 0, match query:"", after:"", include metadata:false, test secondary order key:"", test secondary order direction: 0} (0.01s)
2318:  �[32m✓�[0m Activity list host upcoming activities 1: fleet. list options{ page: 0x 3, per page: 0x 4, order key:"", order direction: 0, match query:"", after:"", include metadata:false, test secondary order key:"", test secondary order direction: 0} (0.01s)
2319:  �[32m✓�[0m Activity list host upcoming activities 1: fleet. list options{ page: 0x 4, per page: 0x 2, order key:"", order direction: 0, match query:"", after:"", include metadata:false, test secondary order key:"", test secondary order direction: 0} (0.02s)
2320:  �[32m✓�[0m Activity list host upcoming activities 2: fleet. list options{ page: 0x 0, per page: 0x 5, order key:"", order direction: 0, match query:"", after:"", include metadata:false, test secondary order key:"", test secondary order direction: 0} (0.01s)
2321:  �[32m✓�[0m Activity list host upcoming activities 3: fleet. list options{ page: 0x 0, per page: 0x 0, order key:"", order direction: 0, match query:"", after:"", include metadata:false, test secondary order key:"", test secondary order direction: 0} (0.00s)
2322:  �[32m✓�[0m Activity list host upcoming activities 4: fleet. list options{ page: 0x 0, per page: 0x 0, order key:"", order direction: 0, match query:"", after:"", include metadata:false, test secondary order key:"", test secondary order direction: 0} (0.00s)
2323:  �[32m✓�[0m Activity set result after cancel upcoming activity (3.25s)
2324:  �[32m✓�[0m Activity unblock hosts upcoming activity queue (3.84s)
2325:  �[32m✓�[0m Activity username change (2.92s)
2326:  �[32m✓�[0m Aggregated stats (5.46s)
2327:  �[32m✓�[0m Aggregated stats queries (1.31s)
2328:  �[32m✓�[0m Already exists error (0.00s)
2329:  �[32m✓�[0m Already exists error is error (0.00s)
2330:  �[32m✓�[0m Already exists error with team ID (0.00s)
2331:  �[32m✓�[0m Already exists error with team name (0.00s)
2332:  �[32m✓�[0m Android (56.58s)
2333:  �[32m✓�[0m Android add delete android app with configuration (1.22s)
2334:  �[32m✓�[0m Android android BYOD detection (1.07s)
2335:  �[32m✓�[0m Android android BYOD detection company enrollment (0.02s)
2336:  �[32m✓�[0m Android android BYOD detection personal enrollment with UUID (0.03s)
2337:  �[32m✓�[0m Android android BYOD detection update existing host enrollment status (0.04s)
2338:  �[32m✓�[0m Android android MDM stats (4.17s)
2339:  �[32m✓�[0m Android android app configuration cascade delete team (1.15s)
2340:  �[32m✓�[0m Android android app configuration global vs team (1.09s)
2341:  �[32m✓�[0m Android android host storage data (2.84s)
2342:  �[32m✓�[0m Android batch set MDM android profiles associations (0.83s)
2343:  �[32m✓�[0m Android bulk delete MDM android host profiles (0.79s)
2344:  �[32m✓�[0m Android bulk delete MDM android host profiles deletes pending or failed remove profiles with policy version lower than or equal to passed (0.01s)
2345:  �[32m✓�[0m Android bulk delete MDM android host profiles does not delete install operation types (0.01s)
...

2380:  �[32m✓�[0m Android has android app configuration changed (1.03s)
2381:  �[32m✓�[0m Android has android app configuration changed boolean instead of object (0.00s)
2382:  �[32m✓�[0m Android has android app configuration changed empty compared to non-existing (0.00s)
2383:  �[32m✓�[0m Android has android app configuration changed empty managed configuration (0.00s)
2384:  �[32m✓�[0m Android has android app configuration changed empty new config (0.00s)
2385:  �[32m✓�[0m Android has android app configuration changed empty object (0.00s)
2386:  �[32m✓�[0m Android has android app configuration changed expanded different config (0.00s)
2387:  �[32m✓�[0m Android has android app configuration changed same config (0.00s)
2388:  �[32m✓�[0m Android has android app configuration changed slightly different config (0.00s)
2389:  �[32m✓�[0m Android has android app configuration changed some config compared to non-existing (0.00s)
2390:  �[32m✓�[0m Android has android app configuration changed very different config (0.00s)
2391:  �[32m✓�[0m Android insert and get android app configuration (0.94s)
2392:  �[32m✓�[0m Android list MDM android profiles to send (2.08s)
2393:  �[32m✓�[0m Android list MDM android profiles to send with exclude any (2.02s)
2394:  �[32m✓�[0m Android list host MDM android profiles pending install with version (0.92s)
2395:  �[32m✓�[0m Android list host MDM android profiles pending install with version does list pending install profiles and failed install profiles with can reverify (0.01s)
2396:  �[32m✓�[0m Android list host MDM android profiles pending install with version does list pending install profiles with version less than or equal to applied policy version (0.01s)
...

2456:  �[32m✓�[0m Campaigns distributed query (3.41s)
2457:  �[32m✓�[0m Campaigns save distributed query (3.03s)
2458:  �[32m✓�[0m Carves (19.23s)
2459:  �[32m✓�[0m Carves blocks (3.57s)
2460:  �[32m✓�[0m Carves cleanup (2.73s)
2461:  �[32m✓�[0m Carves list (2.77s)
2462:  �[32m✓�[0m Carves metadata (2.42s)
2463:  �[32m✓�[0m Carves update (3.12s)
2464:  �[32m✓�[0m Certificate authority (23.41s)
2465:  �[32m✓�[0m Certificate authority create certificate authority (4.00s)
2466:  �[32m✓�[0m Certificate authority delete (2.84s)
2467:  �[32m✓�[0m Certificate authority get all certificate authorities (3.57s)
2468:  �[32m✓�[0m Certificate authority get certificate authority by ID (2.85s)
2469:  �[32m✓�[0m Certificate authority list certificate authorities (2.81s)
2470:  �[32m✓�[0m Certificate authority update certificate authority by ID (2.89s)
2471:  �[32m✓�[0m Certificate authority update certificate authority by ID fails if certificate authority is not found (0.00s)
2472:  �[32m✓�[0m Certificate authority update certificate authority by ID successfully updates custom SCEP proxy CA (0.01s)
2473:  �[32m✓�[0m Certificate authority update certificate authority by ID successfully updates custom est proxy CA (0.01s)
2474:  �[32m✓�[0m Certificate authority update certificate authority by ID successfully updates digicert CA (0.01s)
2475:  �[32m✓�[0m Certificate authority update certificate authority by ID successfully updates hydrant CA (0.01s)
2476:  �[32m✓�[0m Certificate authority update certificate authority by ID successfully updates ndes scep proxy CA (0.01s)
2477:  �[32m✓�[0m Certificate authority update certificate authority by ID successfully updates smallstep SCEP proxy CA (0.01s)
2478:  �[32m✓�[0m Certificates (73.01s)
2479:  �[32m✓�[0m Certificates batch delete certificate templates (5.08s)
2480:  �[32m✓�[0m Certificates batch delete certificate templates delete existing certificates (2.18s)
2481:  �[32m✓�[0m Certificates batch delete certificate templates empty slice (2.90s)
2482:  �[32m✓�[0m Certificates batch upsert certificates (8.16s)
2483:  �[32m✓�[0m Certificates batch upsert certificates create certificates (2.64s)
2484:  �[32m✓�[0m Certificates batch upsert certificates empty slice (2.81s)
2485:  �[32m✓�[0m Certificates batch upsert certificates upsert existing certificates (2.71s)
2486:  �[32m✓�[0m Certificates create certificate template (6.21s)
2487:  �[32m✓�[0m Certificates create certificate template certificate template exists, fails to create (3.04s)
2488:  �[32m✓�[0m Certificates create certificate template create certificate template (3.17s)
2489:  �[32m✓�[0m Certificates delete certificate template (6.67s)
2490:  �[32m✓�[0m Certificates delete certificate template delete existing certificate template (3.29s)
2491:  �[32m✓�[0m Certificates delete certificate template delete non-existing certificate template (3.38s)
2492:  �[32m✓�[0m Certificates get certificate template by id (12.48s)
2493:  �[32m✓�[0m Certificates get certificate template by id get existing certificate template (2.76s)
2494:  �[32m✓�[0m Certificates get certificate template by id no existing certificate template (3.49s)
2495:  �[32m✓�[0m Certificates get certificate template by id template with pending host certificate template (3.50s)
2496:  �[32m✓�[0m Certificates get certificate template by id template with verified host certificate template (2.73s)
2497:  �[32m✓�[0m Certificates get certificate template for host (3.00s)
2498:  �[32m✓�[0m Certificates get certificate template for host returns certificate template for host with host certificate template record (0.00s)
2499:  �[32m✓�[0m Certificates get certificate template for host returns certificate template for host without host certificate template record (0.00s)
2500:  �[32m✓�[0m Certificates get certificate template for host returns error for non-existent certificate template (0.01s)
2501:  �[32m✓�[0m Certificates get certificate template for host returns error for non-existent host (0.01s)
2502:  �[32m✓�[0m Certificates get certificate template for host returns error when certificate template doesn't belong to host's team (0.00s)
2503:  �[32m✓�[0m Certificates get certificate templates by ids and team (5.60s)
...

2508:  �[32m✓�[0m Certificates get certificate templates by team ID get existing certificate templates for team (2.48s)
2509:  �[32m✓�[0m Certificates get certificate templates by team ID no existing certificate templates for team (2.96s)
2510:  �[32m✓�[0m Certificates get certificate templates by team ID pagination works (2.49s)
2511:  �[32m✓�[0m Certificates get host certificate template record (3.06s)
2512:  �[32m✓�[0m Certificates get host certificate template record returns not found for non-existent host (0.01s)
2513:  �[32m✓�[0m Certificates get host certificate template record returns not found for non-existent template (0.00s)
2514:  �[32m✓�[0m Certificates get host certificate template record returns record even after parent certificate template is deleted (0.02s)
2515:  �[32m✓�[0m Certificates get host certificate template record returns record when it exists (0.00s)
2516:  �[32m✓�[0m Certificates get host certificate templates (2.74s)
2517:  �[32m✓�[0m Certificates get host certificate templates host UUID is not provided (0.00s)
2518:  �[32m✓�[0m Certificates get host certificate templates no certificate templates found (0.00s)
2519:  �[32m✓�[0m Certificates get host certificate templates returns the certificates available for the host (0.00s)
2520:  �[32m✓�[0m Certificates resend host certificate template (3.33s)
2521:  �[32m✓�[0m Certificates resend host certificate template clears validity fields and deletes challenge (0.04s)
2522:  �[32m✓�[0m Certificates resend host certificate template from delivered (0.02s)
2523:  �[32m✓�[0m Certificates resend host certificate template from failed (0.03s)
2524:  �[32m✓�[0m Certificates resend host certificate template from verified (0.03s)
2525:  �[32m✓�[0m Certificates resend host certificate template returns error for non-existent host (0.01s)
2526:  �[32m✓�[0m Certificates resend host certificate template returns error for non-existent template (0.01s)
2527:  �[32m✓�[0m Cleanup cron stats (4.32s)
...

2539:  �[32m✓�[0m Compare versions equal (0.00s)
2540:  �[32m✓�[0m Compare versions equal-out-of-order (0.00s)
2541:  �[32m✓�[0m Compare versions known-unknown (0.00s)
2542:  �[32m✓�[0m Compare versions missing (0.00s)
2543:  �[32m✓�[0m Compare versions missing-and-unknown (0.00s)
2544:  �[32m✓�[0m Compare versions unknown (0.00s)
2545:  �[32m✓�[0m Compare versions unknowns (0.00s)
2546:  �[32m✓�[0m Conditional access (12.37s)
2547:  �[32m✓�[0m Conditional access SCEP (18.58s)
2548:  �[32m✓�[0m Conditional access SCEP certificate lifecycle (3.50s)
2549:  �[32m✓�[0m Conditional access SCEP expired certs not returned (2.94s)
2550:  �[32m✓�[0m Conditional access SCEP get cert by serial and created at (3.56s)
2551:  �[32m✓�[0m Conditional access SCEP revoked certs not returned (3.46s)
2552:  �[32m✓�[0m Conditional access bypass (28.11s)
2553:  �[32m✓�[0m Conditional access bypass conditional access bypass allowed with CA enabled non critical policy (3.22s)
2554:  �[32m✓�[0m Conditional access bypass conditional access bypass allowed with non CA failing critical policy (2.70s)
2555:  �[32m✓�[0m Conditional access bypass conditional access bypass deleted with host (3.07s)
...

2573:  �[32m✓�[0m Disk encryption (10.22s)
2574:  �[32m✓�[0m Disk encryption test cleanup disk encryption keys on team change (2.49s)
2575:  �[32m✓�[0m Disk encryption test delete LUKS data (3.04s)
2576:  �[32m✓�[0m Email changes (8.38s)
2577:  �[32m✓�[0m Email changes confirm (3.46s)
2578:  �[32m✓�[0m Extract windows build version (0.00s)
2579:  �[32m✓�[0m Extract windows build version empty string (0.00s)
2580:  �[32m✓�[0m Extract windows build version leading whitespace (0.00s)
2581:  �[32m✓�[0m Extract windows build version no spaces (0.00s)
2582:  �[32m✓�[0m Extract windows build version single word (0.00s)
2583:  �[32m✓�[0m Extract windows build version trailing whitespace (0.00s)
2584:  �[32m✓�[0m Extract windows build version windows 10 pro (0.00s)
2585:  �[32m✓�[0m Extract windows build version windows server 2025 datacenter (0.00s)
2586:  �[32m✓�[0m Get MDM apple OS updates settings by host serial (4.65s)
2587:  �[32m✓�[0m Get context try stmt (0.00s)
2588:  �[32m✓�[0m Get context try stmt get with other error (0.00s)
2589:  �[32m✓�[0m Get context try stmt get with unknown statement error (0.00s)
2590:  �[32m✓�[0m Get host operating system (3.95s)
2591:  �[32m✓�[0m Get latest cron stats (4.97s)
2592:  �[32m✓�[0m Health check detects read only (0.00s)
2593:  �[32m✓�[0m Host DEPAs signments (5.99s)
2594:  �[32m✓�[0m Host DEPAs signments DEP enrollment (0.25s)
2595:  �[32m✓�[0m Host DEPAs signments DEP enrollment with migration (0.33s)
2596:  �[32m✓�[0m Host DEPAs signments manual enrollment (0.10s)
2597:  �[32m✓�[0m Host certificate templates (165.84s)
2598:  �[32m✓�[0m Host certificate templates bulk insert and delete host certificate templates (14.38s)
2599:  �[32m✓�[0m Host certificate templates bulk insert and delete host certificate templates bulk inserts and deletes specific records (2.92s)
2600:  �[32m✓�[0m Host certificate templates bulk insert and delete host certificate templates deletes multiple records at once (3.28s)
2601:  �[32m✓�[0m Host certificate templates bulk insert and delete host certificate templates no error when deleting non-existent records (2.86s)
2602:  �[32m✓�[0m Host certificate templates bulk insert and delete host certificate templates no error with empty list (2.44s)
2603:  �[32m✓�[0m Host certificate templates certificate template full state machine (2.64s)
2604:  �[32m✓�[0m Host certificate templates certificate template reinstalled after transfer back to original team (3.22s)
2605:  �[32m✓�[0m Host certificate templates create pending certificate templates for existing hosts (12.22s)
2606:  �[32m✓�[0m Host certificate templates create pending certificate templates for existing hosts creates pending records for all enrolled android hosts in team (3.03s)
2607:  �[32m✓�[0m Host certificate templates create pending certificate templates for existing hosts does not create records for non-android hosts (3.77s)
2608:  �[32m✓�[0m Host certificate templates create pending certificate templates for existing hosts does not create records for unenrolled hosts (2.84s)
2609:  �[32m✓�[0m Host certificate templates create pending certificate templates for new host (11.19s)
2610:  �[32m✓�[0m Host certificate templates create pending certificate templates for new host creates pending records for newly enrolled host (2.91s)
2611:  �[32m✓�[0m Host certificate templates create pending certificate templates for new host no-op when team has no certificate templates (2.72s)
2612:  �[32m✓�[0m Host certificate templates create pending certificate templates for new host resets verified certs to pending on re-enrollment (2.69s)
2613:  �[32m✓�[0m Host certificate templates delete host certificate template (7.87s)
2614:  �[32m✓�[0m Host certificate templates delete host certificate template no error when deleting non-existent record (3.20s)
2615:  �[32m✓�[0m Host certificate templates delete host certificate template only deletes specified record (2.29s)
2616:  �[32m✓�[0m Host certificate templates get and transition certificate templates to delivering includes removal (2.98s)
2617:  �[32m✓�[0m Host certificate templates get android certificate templates for renewal (3.24s)
2618:  �[32m✓�[0m Host certificate templates get certificate template for host no team (13.23s)
2619:  �[32m✓�[0m Host certificate templates get certificate template for host no team returns certificate template for host with team (3.55s)
2620:  �[32m✓�[0m Host certificate templates get certificate template for host no team returns certificate template for no team host (3.39s)
2621:  �[32m✓�[0m Host certificate templates get certificate template for host no team returns not found for non-existent host (3.26s)
2622:  �[32m✓�[0m Host certificate templates get or create fleet challenge for certificate template (2.93s)
2623:  �[32m✓�[0m Host certificate templates get or create fleet challenge for certificate template creates challenge on first call and returns same on subsequent calls (0.03s)
2624:  �[32m✓�[0m Host certificate templates get or create fleet challenge for certificate template returns error for non-delivered status (0.01s)
2625:  �[32m✓�[0m Host certificate templates get or create fleet challenge for certificate template returns error for non-existent template (0.01s)
2626:  �[32m✓�[0m Host certificate templates list android host UUIDs with deliverable certificate templates (18.53s)
...

2634:  �[32m✓�[0m Host certificate templates list android host UUIDs with pending certificate templates includes removal (2.78s)
2635:  �[32m✓�[0m Host certificate templates list android host UUIDs with pending certificate templates respects pagination (2.77s)
2636:  �[32m✓�[0m Host certificate templates list android host UUIDs with pending certificate templates returns hosts with pending install certificates (2.38s)
2637:  �[32m✓�[0m Host certificate templates list certificate templates for hosts (13.11s)
2638:  �[32m✓�[0m Host certificate templates list certificate templates for hosts host with existing host certificate templates (2.82s)
2639:  �[32m✓�[0m Host certificate templates list certificate templates for hosts host with no existing host certificate templates (2.81s)
2640:  �[32m✓�[0m Host certificate templates list certificate templates for hosts includes removal after team transfer (2.94s)
2641:  �[32m✓�[0m Host certificate templates list certificate templates for hosts no team host returns no team certificate templates (3.27s)
2642:  �[32m✓�[0m Host certificate templates retry host certificate template (2.70s)
2643:  �[32m✓�[0m Host certificate templates revert stale certificate templates (13.73s)
2644:  �[32m✓�[0m Host certificate templates revert stale certificate templates does not revert non-delivering statuses (2.97s)
2645:  �[32m✓�[0m Host certificate templates revert stale certificate templates returns zero when no stale templates (3.31s)
2646:  �[32m✓�[0m Host certificate templates revert stale certificate templates reverts stale delivering templates (2.76s)
2647:  �[32m✓�[0m Host certificate templates set android certificate templates for renewal (3.40s)
2648:  �[32m✓�[0m Host certificate templates set host certificate templates to pending remove (12.28s)
2649:  �[32m✓�[0m Host certificate templates set host certificate templates to pending remove deletes pending and failed rows and updates others to pending remove (2.82s)
2650:  �[32m✓�[0m Host certificate templates set host certificate templates to pending remove for host (3.02s)
2651:  �[32m✓�[0m Host certificate templates set host certificate templates to pending remove for host deletes pending and failed installs, updates other installs, leaves removes unchanged (0.08s)
2652:  �[32m✓�[0m Host certificate templates set host certificate templates to pending remove handles no matching rows gracefully (2.91s)
...

2721:  �[32m✓�[0m Hosts enroll orbit scenario c ubuntu (0.02s)
2722:  �[32m✓�[0m Hosts enroll orbit scenario c windows (0.02s)
2723:  �[32m✓�[0m Hosts enroll orbit scenario d darwin (3.12s)
2724:  �[32m✓�[0m Hosts enroll orbit scenario d ubuntu (3.16s)
2725:  �[32m✓�[0m Hosts enroll orbit scenario d windows (3.11s)
2726:  �[32m✓�[0m Hosts enroll orbit scenario e from darwin to darwin (3.22s)
2727:  �[32m✓�[0m Hosts enroll orbit scenario e from darwin to ubuntu (3.21s)
2728:  �[32m✓�[0m Hosts enroll orbit scenario e from darwin to windows (3.23s)
2729:  �[32m✓�[0m Hosts enroll orbit scenario e from ubuntu to darwin (3.14s)
2730:  �[32m✓�[0m Hosts enroll orbit scenario e from ubuntu to ubuntu (3.07s)
2731:  �[32m✓�[0m Hosts enroll orbit scenario e from ubuntu to windows (3.14s)
2732:  �[32m✓�[0m Hosts enroll orbit scenario e from windows to darwin (3.23s)
2733:  �[32m✓�[0m Hosts enroll orbit scenario e from windows to ubuntu (3.24s)
2734:  �[32m✓�[0m Hosts enroll orbit scenario e from windows to windows (3.23s)
2735:  �[32m✓�[0m Hosts enroll updates missing info (0.63s)
2736:  �[32m✓�[0m Hosts failing policies count (1.09s)
2737:  �[32m✓�[0m Hosts failing policies count no policies (0.03s)
2738:  �[32m✓�[0m Hosts failing policies count with policies and memberships (0.29s)
2739:  �[32m✓�[0m Hosts generate status statistics (2.27s)
2740:  �[32m✓�[0m Hosts generate status statistics ABM pending exclusion (3.89s)
2741:  �[32m✓�[0m Hosts generate status statistics DEP errors (3.49s)
2742:  �[32m✓�[0m Hosts get device auth token (0.78s)
...

2758:  �[32m✓�[0m Hosts host IDs by OS version (0.86s)
2759:  �[32m✓�[0m Hosts host IDs by OS version filtering by os version (0.03s)
2760:  �[32m✓�[0m Hosts host IDs by OS version no match (0.00s)
2761:  �[32m✓�[0m Hosts host IDs by OSID (3.32s)
2762:  �[32m✓�[0m Hosts host IDs by OSID no OS (0.00s)
2763:  �[32m✓�[0m Hosts host IDs by OSID returns empty if no more pages (2.68s)
2764:  �[32m✓�[0m Hosts host IDs by OSID returns matching entries (0.02s)
2765:  �[32m✓�[0m Hosts host MDM and munki (1.16s)
2766:  �[32m✓�[0m Hosts host device mapping (1.06s)
2767:  �[32m✓�[0m Hosts host health (0.64s)
2768:  �[32m✓�[0m Hosts host list options android OS settings (3.55s)
2769:  �[32m✓�[0m Hosts host list options android certificate templates OS settings (3.52s)
2770:  �[32m✓�[0m Hosts host list options android certificate templates OS settings combined profile and cert template (0.16s)
2771:  �[32m✓�[0m Hosts host list options android certificate templates OS settings delivered (0.24s)
2772:  �[32m✓�[0m Hosts host list options android certificate templates OS settings delivering (0.09s)
2773:  �[32m✓�[0m Hosts host list options android certificate templates OS settings failed (0.13s)
2774:  �[32m✓�[0m Hosts host list options android certificate templates OS settings pending (0.06s)
...

2787:  �[32m✓�[0m Hosts hostnames by identifiers no match (0.00s)
2788:  �[32m✓�[0m Hosts hostnames by identifiers single match (0.00s)
2789:  �[32m✓�[0m Hosts hostnames by identifiers two matches (0.00s)
2790:  �[32m✓�[0m Hosts hosts add to team cleans up team query results (0.63s)
2791:  �[32m✓�[0m Hosts hosts all pack stats (1.11s)
2792:  �[32m✓�[0m Hosts hosts enroll orbit with platform like (0.65s)
2793:  �[32m✓�[0m Hosts hosts expiration (2.36s)
2794:  �[32m✓�[0m Hosts hosts includes scheduled queries in pack stats (1.21s)
2795:  �[32m✓�[0m Hosts hosts list batch script execution (2.39s)
2796:  �[32m✓�[0m Hosts hosts list by OS name and version (2.99s)
2797:  �[32m✓�[0m Hosts hosts list by disk encryption status (4.37s)
2798:  �[32m✓�[0m Hosts hosts list by operating system ID (3.38s)
2799:  �[32m✓�[0m Hosts hosts list by software (3.37s)
2800:  �[32m✓�[0m Hosts hosts list by software changed at (5.03s)
2801:  �[32m✓�[0m Hosts hosts list by vulnerability (2.97s)
2802:  �[32m✓�[0m Hosts hosts list failing policies (3.17s)
2803:  �[32m✓�[0m Hosts hosts no seen time (2.28s)
2804:  �[32m✓�[0m Hosts hosts pack stats for platform (1.09s)
2805:  �[32m✓�[0m Hosts hosts pack stats multiple hosts (1.27s)
2806:  �[32m✓�[0m Hosts hosts pack stats no duplication (1.23s)
2807:  �[33m∅�[0m Hosts hosts reads less rows (0.77s)
2808:  �[32m✓�[0m Hosts list MDM (3.65s)
2809:  �[32m✓�[0m Hosts list MDM android (3.21s)
2810:  �[32m✓�[0m Hosts list by policy (3.30s)
2811:  �[32m✓�[0m Hosts list filter additional (2.79s)
2812:  �[32m✓�[0m Hosts list hosts DEP filters (0.72s)
2813:  �[32m✓�[0m Hosts list hosts DEP filters deleted DEP assignment is excluded from dep assign profile response filter (0.02s)
2814:  �[32m✓�[0m Hosts list hosts DEP filters deleted DEP assignment is excluded from dep profile error=true (0.02s)
2815:  �[32m✓�[0m Hosts list hosts DEP filters dep assign profile response with no matching hosts returns empty (0.04s)
2816:  �[32m✓�[0m Hosts list hosts DEP filters dep assign profile response= FAILED (0.01s)
2817:  �[32m✓�[0m Hosts list hosts DEP filters dep assign profile response= NOT ACCESSIBLE (0.01s)
2818:  �[32m✓�[0m Hosts list hosts DEP filters dep assign profile response= SUCCESS (0.01s)
2819:  �[32m✓�[0m Hosts list hosts DEP filters dep assign profile response= THROTTLED (0.01s)
2820:  �[32m✓�[0m Hosts list hosts DEP filters dep profile error=false returns all hosts without a DEP error (0.01s)
2821:  �[32m✓�[0m Hosts list hosts DEP filters dep profile error=true combined with team filter (0.03s)
2822:  �[32m✓�[0m Hosts list hosts DEP filters dep profile error=true returns only FAILED and THROTTLED hosts (0.01s)
2823:  �[32m✓�[0m Hosts list hosts DEP filters nil dep profile error returns all hosts (0.01s)
2824:  �[32m✓�[0m Hosts list hosts by profile UUID and status (1.01s)
...

2939:  �[32m✓�[0m Invites create (3.13s)
2940:  �[32m✓�[0m Invites delete (3.64s)
2941:  �[32m✓�[0m Invites invite (3.65s)
2942:  �[32m✓�[0m Invites list (2.87s)
2943:  �[32m✓�[0m Invites update (3.10s)
2944:  �[32m✓�[0m Jobs (18.97s)
2945:  �[32m✓�[0m Jobs cleanup worker jobs (3.03s)
2946:  �[32m✓�[0m Jobs queue and process jobs (3.39s)
2947:  �[32m✓�[0m Jobs queue and process jobs# 01 (3.01s)
2948:  �[32m✓�[0m Labels (123.16s)
2949:  �[32m✓�[0m Labels IDs by name (2.87s)
2950:  �[32m✓�[0m Labels add all hosts deferred (3.72s)
2951:  �[32m✓�[0m Labels add all hosts not deferred (2.68s)
2952:  �[32m✓�[0m Labels add delete labels to from host (4.10s)
2953:  �[32m✓�[0m Labels apply label spec serial UUID (3.17s)
2954:  �[32m✓�[0m Labels apply label specs errors when label exists on another team (2.94s)
2955:  �[32m✓�[0m Labels apply label specs manual nil hosts (2.95s)
...

3006:  �[32m✓�[0m Labels record non existent query label execution (3.17s)
3007:  �[32m✓�[0m Labels save (3.14s)
3008:  �[32m✓�[0m Labels search (3.16s)
3009:  �[32m✓�[0m Labels set aside labels (4.18s)
3010:  �[32m✓�[0m Labels set aside labels cannot set aside global labels when applying to global (0.01s)
3011:  �[32m✓�[0m Labels set aside labels cannot set aside labels from the same team we're applying to (0.01s)
3012:  �[32m✓�[0m Labels set aside labels empty names list is a no-op (0.00s)
3013:  �[32m✓�[0m Labels set aside labels global admin can set aside global labels when applying to a team (0.04s)
3014:  �[32m✓�[0m Labels set aside labels global gitops can set aside global labels (0.02s)
3015:  �[32m✓�[0m Labels set aside labels global maintainer can set aside global labels (0.13s)
3016:  �[32m✓�[0m Labels set aside labels global observer cannot set aside global labels (0.00s)
3017:  �[32m✓�[0m Labels set aside labels global technician can set aside global labels (0.03s)
3018:  �[32m✓�[0m Labels set aside labels multi-team user can set aside labels from teams they have write access to (0.02s)
3019:  �[32m✓�[0m Labels set aside labels multi-team user cannot set aside labels from teams they don't have write access to (0.01s)
3020:  �[32m✓�[0m Labels set aside labels multiple labels can be set aside at once (0.03s)
3021:  �[32m✓�[0m Labels set aside labels non-existent label should fail (0.00s)
3022:  �[32m✓�[0m Labels set aside labels team admin can set aside their own team's labels if they can also edit the not-on team (0.03s)
...

3042:  �[32m✓�[0m List vulns by multiple OS versions empty input (3.00s)
3043:  �[32m✓�[0m List vulns by multiple OS versions mixed platforms (2.72s)
3044:  �[32m✓�[0m List vulns by multiple OS versions multiple linux OS with many kernels (3.09s)
3045:  �[32m✓�[0m List vulns by multiple OS versions non existent OS (3.33s)
3046:  �[32m✓�[0m List vulns by multiple OS versions with CVSS (3.17s)
3047:  �[32m✓�[0m List vulns by multiple OS versions with max vulnerabilities (3.78s)
3048:  �[32m✓�[0m List vulns by multiple OS versions with max vulnerabilities combined all OS types with max=2 (0.01s)
3049:  �[32m✓�[0m List vulns by multiple OS versions with max vulnerabilities combined os versions + linux OS with max=0 (0.01s)
3050:  �[32m✓�[0m List vulns by multiple OS versions with max vulnerabilities combined os versions + linux OS with max=1 (0.01s)
3051:  �[32m✓�[0m List vulns by multiple OS versions with max vulnerabilities max = 0 returns empty array with count (0.01s)
3052:  �[32m✓�[0m List vulns by multiple OS versions with max vulnerabilities max = 1 for linux kernel vulnerabilities (0.01s)
3053:  �[32m✓�[0m List vulns by multiple OS versions with max vulnerabilities max = 1 limits to 1 vulnerability (0.01s)
3054:  �[32m✓�[0m List vulns by multiple OS versions with max vulnerabilities max exceeds total returns all vulnerabilities (0.02s)
3055:  �[32m✓�[0m List vulns by multiple OS versions with max vulnerabilities multi-arch with max returns correct count (0.01s)
3056:  �[32m✓�[0m List vulns by multiple OS versions with max vulnerabilities multi-arch with max=0 returns correct count (0.01s)
3057:  �[32m✓�[0m List vulns by multiple OS versions with max vulnerabilities negative value returns error (0.00s)
3058:  �[32m✓�[0m List vulns by multiple OS versions with team filter (3.89s)
...

3074:  �[32m✓�[0m MDM apple MDM managed SCEP certificates NDES renew scenario 1 - validity window > 30 days (0.04s)
3075:  �[32m✓�[0m MDM apple MDM managed SCEP certificates NDES renew scenario 2 - validity window < 30 days (0.05s)
3076:  �[32m✓�[0m MDM apple MDM managed SCEP certificates custom SCEP (0.26s)
3077:  �[32m✓�[0m MDM apple MDM managed SCEP certificates custom SCEP non renewal scenario 1 - validity window > 30 days but not yet time to renew (0.05s)
3078:  �[32m✓�[0m MDM apple MDM managed SCEP certificates custom SCEP non renewal scenario 2 - validity window < 30 days but not yet time to renew (0.05s)
3079:  �[32m✓�[0m MDM apple MDM managed SCEP certificates custom SCEP renew scenario 1 - validity window > 30 days (0.04s)
3080:  �[32m✓�[0m MDM apple MDM managed SCEP certificates custom SCEP renew scenario 2 - validity window < 30 days (0.05s)
3081:  �[32m✓�[0m MDM apple MDM managed digicert certificates (0.92s)
3082:  �[32m✓�[0m MDM apple MDM managed digicert certificates renew scenario 1 - validity window > 30 days (0.06s)
3083:  �[32m✓�[0m MDM apple MDM managed digicert certificates renew scenario 2 - validity window < 30 days (0.05s)
3084:  �[32m✓�[0m MDM apple aggregate mac OS settings all platforms (0.74s)
3085:  �[32m✓�[0m MDM apple apple MDM set batch async last seen at (1.70s)
3086:  �[32m✓�[0m MDM apple claim hosts for recovery lock clear (0.96s)
3087:  �[32m✓�[0m MDM apple claim hosts for recovery lock clear claims no-team host when appconfig disabled (0.04s)
3088:  �[32m✓�[0m MDM apple claim hosts for recovery lock clear claims verified host when config disabled (0.06s)
3089:  �[32m✓�[0m MDM apple claim hosts for recovery lock clear does not claim pending or failed hosts (0.07s)
3090:  �[32m✓�[0m MDM apple claim hosts for recovery lock clear get operation type (0.05s)
3091:  �[32m✓�[0m MDM apple claim hosts for recovery lock clear no hosts to clear returns empty (0.01s)
3092:  �[32m✓�[0m MDM apple claim hosts for recovery lock clear retries failed clear attempts (0.06s)
3093:  �[32m✓�[0m MDM apple claim hosts for recovery lock clear returns pending when operation type is install and status is NULL (0.01s)
3094:  �[32m✓�[0m MDM apple claim hosts for recovery lock clear returns verified status (0.05s)
3095:  �[32m✓�[0m MDM apple claim hosts for recovery lock clear soft delete marks password record as deleted (0.04s)
3096:  �[32m✓�[0m MDM apple cleanup orphaned nano refetch commands (0.64s)
3097:  �[32m✓�[0m MDM apple cleanup stale nano refetch commands (0.69s)
3098:  �[32m✓�[0m MDM apple delete MDM apple declaration by name cancels installs (0.72s)
3099:  �[32m✓�[0m MDM apple delete MDM apple declaration by name cancels installs no team (0.10s)
3100:  �[32m✓�[0m MDM apple delete MDM apple declaration by name cancels installs team (0.08s)
3101:  �[32m✓�[0m MDM apple device location (0.59s)
3102:  �[32m✓�[0m MDM apple file vault summary (4.60s)
3103:  �[32m✓�[0m MDM apple get MDM apple enrolled device deleted from fleet (0.96s)
3104:  �[32m✓�[0m MDM apple get and update ABM token (0.83s)
3105:  �[32m✓�[0m MDM apple get enrollment IDs with pending MDM apple commands (1.10s)
3106:  �[32m✓�[0m MDM apple get host recovery lock password status (0.62s)
3107:  �[32m✓�[0m MDM apple get host recovery lock password status returns enforcing status for pending install (0.01s)
3108:  �[32m✓�[0m MDM apple get host recovery lock password status returns enforcing status when status column is NULL (retry state) (0.01s)
3109:  �[32m✓�[0m MDM apple get host recovery lock password status returns failed status when operation type is remove and status is failed (0.01s)
3110:  �[32m✓�[0m MDM apple get host recovery lock password status returns failed status with error message (0.01s)
3111:  �[32m✓�[0m MDM apple get host recovery lock password status returns nil for host without recovery lock password (0.01s)
3112:  �[32m✓�[0m MDM apple get host recovery lock password status returns removing enforcement status for pending removal after populate status (0.01s)
3113:  �[32m✓�[0m MDM apple get host recovery lock password status returns verified status (0.01s)
3114:  �[32m✓�[0m MDM apple get host recovery lock password status returns verifying status (0.01s)
3115:  �[32m✓�[0m MDM apple get hosts for recovery lock action (0.80s)
3116:  �[32m✓�[0m MDM apple get nano MDM enrollment details (0.68s)
3117:  �[32m✓�[0m MDM apple get nano MDMUs er enrollment (0.63s)
3118:  �[32m✓�[0m MDM apple host MDM commands (0.81s)
3119:  �[32m✓�[0m MDM apple ingest MDM apple device from OTA enrollment (1.08s)
3120:  �[32m✓�[0m MDM apple ingest MDM apple devices from DEP sync IOSI pad OS (0.59s)
3121:  �[32m✓�[0m MDM apple list IOS and i pad OS to refetch (0.69s)
3122:  �[32m✓�[0m MDM apple lock unlock wipe mac OS (0.81s)
3123:  �[32m✓�[0m MDM apple profile verification (7.11s)
3124:  �[32m✓�[0m MDM apple profile verification earliest install date (0.11s)
3125:  �[32m✓�[0m MDM apple profile verification expected profile (0.39s)
3126:  �[32m✓�[0m MDM apple profile verification expected profile failed then found expected (0.11s)
3127:  �[32m✓�[0m MDM apple profile verification expected profile pending then found expected (0.09s)
3128:  �[32m✓�[0m MDM apple profile verification expected profile verified then found expected (0.10s)
3129:  �[32m✓�[0m MDM apple profile verification expected profile verifying then found expected (0.09s)
3130:  �[32m✓�[0m MDM apple profile verification missing profile with retry (1.26s)
3131:  �[32m✓�[0m MDM apple profile verification outdated profile (0.56s)
3132:  �[32m✓�[0m MDM apple profile verification outdated profile failed then found outdated (0.17s)
3133:  �[32m✓�[0m MDM apple profile verification outdated profile pending then found outdated (0.10s)
3134:  �[32m✓�[0m MDM apple profile verification outdated profile verified then found outdated (0.09s)
3135:  �[32m✓�[0m MDM apple profile verification outdated profile verifying then found outdated (0.20s)
3136:  �[32m✓�[0m MDM apple profile verification unexpected profile (0.52s)
3137:  �[32m✓�[0m MDM apple profile verification unexpected profile failed then found expected and unexpected (0.12s)
3138:  �[32m✓�[0m MDM apple profile verification unexpected profile pending then found expected and unexpected (0.09s)
3139:  �[32m✓�[0m MDM apple profile verification unexpected profile verified then foun expected andd unexpected (0.10s)
3140:  �[32m✓�[0m MDM apple profile verification unexpected profile verifying then found expected and unexpected (0.20s)
3141:  �[32m✓�[0m MDM apple recovery lock auto rotation (0.79s)
3142:  �[32m✓�[0m MDM apple recovery lock auto rotation complete recovery lock rotation clears auto rotate at (0.02s)
3143:  �[32m✓�[0m MDM apple recovery lock auto rotation get host recovery lock password includes auto rotate at (0.02s)
3144:  �[32m✓�[0m MDM apple recovery lock auto rotation get hosts for auto rotation excludes future auto rotate at (0.01s)
3145:  �[32m✓�[0m MDM apple recovery lock auto rotation get hosts for auto rotation excludes hosts with pending rotation (0.02s)
3146:  �[32m✓�[0m MDM apple recovery lock auto rotation get hosts for auto rotation excludes non-verified hosts (0.01s)
3147:  �[32m✓�[0m MDM apple recovery lock auto rotation get hosts for auto rotation returns due hosts (0.02s)
3148:  �[32m✓�[0m MDM apple recovery lock auto rotation mark recovery lock password viewed fails for non-existent host (0.00s)
3149:  �[32m✓�[0m MDM apple recovery lock auto rotation mark recovery lock password viewed fails for remove operation (0.02s)
3150:  �[32m✓�[0m MDM apple recovery lock auto rotation mark recovery lock password viewed sets auto rotate at (0.02s)
3151:  �[32m✓�[0m MDM apple recovery lock auto rotation mark recovery lock password viewed updates existing auto rotate at (0.03s)
3152:  �[32m✓�[0m MDM apple recovery lock password bulk set (0.51s)
3153:  �[32m✓�[0m MDM apple recovery lock password get not found (0.51s)
3154:  �[32m✓�[0m MDM apple recovery lock password set and get (0.51s)
3155:  �[32m✓�[0m MDM apple recovery lock password set overwrite (0.49s)
3156:  �[32m✓�[0m MDM apple recovery lock password updated at changes (1.51s)
3157:  �[32m✓�[0m MDM apple recovery lock rotation (0.84s)
3158:  �[32m✓�[0m MDM apple recovery lock rotation clear recovery lock rotation removes pending (0.03s)
3159:  �[32m✓�[0m MDM apple recovery lock rotation clear recovery lock rotation restores failed status (0.02s)
3160:  �[32m✓�[0m MDM apple recovery lock rotation complete recovery lock rotation success (0.03s)
3161:  �[32m✓�[0m MDM apple recovery lock rotation fail recovery lock rotation preserves pending password (0.02s)
3162:  �[32m✓�[0m MDM apple recovery lock rotation get recovery lock rotation status not found (0.00s)
3163:  �[32m✓�[0m MDM apple recovery lock rotation get recovery lock rotation status returns all fields (0.02s)
3164:  �[32m✓�[0m MDM apple recovery lock rotation has pending recovery lock rotation returns false for no record (0.00s)
3165:  �[32m✓�[0m MDM apple recovery lock rotation initiate recovery lock rotation allows failed status (0.02s)
3166:  �[32m✓�[0m MDM apple recovery lock rotation initiate recovery lock rotation rejects if already pending (0.02s)
3167:  �[32m✓�[0m MDM apple recovery lock rotation initiate recovery lock rotation rejects pending status (0.01s)
3168:  �[32m✓�[0m MDM apple recovery lock rotation initiate recovery lock rotation success (0.02s)
3169:  �[32m✓�[0m MDM apple recovery lock status methods (0.55s)
3170:  �[32m✓�[0m MDM apple recovery lock status methods clear recovery lock pending status (0.01s)
3171:  �[32m✓�[0m MDM apple recovery lock status methods clear recovery lock pending status only clears pending (0.01s)
3172:  �[32m✓�[0m MDM apple recovery lock status methods reset recovery lock for retry (0.01s)
3173:  �[32m✓�[0m MDM apple recovery lock status methods reset recovery lock for retry from failed state (0.01s)
3174:  �[32m✓�[0m MDM apple recovery lock status methods set hosts recovery lock passwords sets pending status atomically (0.01s)
3175:  �[32m✓�[0m MDM apple recovery lock status methods set recovery lock failed (0.01s)
3176:  �[32m✓�[0m MDM apple recovery lock status methods set recovery lock verified (0.01s)
...

3205:  �[32m✓�[0m MDM apple test MDM get ABM token org names associated with team (0.79s)
3206:  �[32m✓�[0m MDM apple test aggregate mac OS settings status with file vault (2.70s)
3207:  �[32m✓�[0m MDM apple test batch set MDM apple profiles (5.70s)
3208:  �[32m✓�[0m MDM apple test bulk upsert MDM apple config profiles (2.83s)
3209:  �[32m✓�[0m MDM apple test delete MDM apple config profile (3.10s)
3210:  �[32m✓�[0m MDM apple test delete MDM apple config profile by team and identifier (2.97s)
3211:  �[32m✓�[0m MDM apple test delete MDM apple config profile with pending installs (3.85s)
3212:  �[32m✓�[0m MDM apple test delete MDM apple declaration with pending installs (0.63s)
3213:  �[32m✓�[0m MDM apple test delete MDM apple profiles for host (1.08s)
3214:  �[32m✓�[0m MDM apple test get DEPAs sign profile expired cooldowns (1.76s)
3215:  �[32m✓�[0m MDM apple test get MDM apple command results (1.28s)
3216:  �[32m✓�[0m MDM apple test get MDM apple profiles contents (2.06s)
3217:  �[32m✓�[0m MDM apple test get latest apple MDM command of type (0.61s)
3218:  �[32m✓�[0m MDM apple test host details MDM profiles (3.15s)
3219:  �[32m✓�[0m MDM apple test host details MDM profiles IOSI pad OS (3.66s)
3220:  �[32m✓�[0m MDM apple test ignore MDM client error (1.05s)
3221:  �[32m✓�[0m MDM apple test list MDM apple commands (1.20s)
...

3273:  �[32m✓�[0m MDM shared test batch set profile label associations valid input darwin (0.03s)
3274:  �[32m✓�[0m MDM shared test batch set profile label associations valid input windows (0.03s)
3275:  �[32m✓�[0m MDM shared test bulk set pending MDM host profiles (5.93s)
3276:  �[32m✓�[0m MDM shared test bulk set pending MDM host profiles batch 2 (5.91s)
3277:  �[32m✓�[0m MDM shared test bulk set pending MDM host profiles batch 3 (7.43s)
3278:  �[32m✓�[0m MDM shared test bulk set pending MDM host profiles exclude any (4.04s)
3279:  �[32m✓�[0m MDM shared test bulk set pending MDM host profiles lots of hosts (4.71s)
3280:  �[32m✓�[0m MDM shared test clean up MDM managed certificates (3.12s)
3281:  �[32m✓�[0m MDM shared test clean up MDM managed certificates non matching host profile record (0.02s)
3282:  �[32m✓�[0m MDM shared test clean up MDM managed certificates valid apple record stays (0.03s)
3283:  �[32m✓�[0m MDM shared test clean up MDM managed certificates valid windows record stays (0.02s)
3284:  �[32m✓�[0m MDM shared test delete MDM profiles cancels installs (3.85s)
3285:  �[32m✓�[0m MDM shared test delete team cancels windows profile installs (2.94s)
3286:  �[32m✓�[0m MDM shared test enqueue command with name (3.50s)
3287:  �[32m✓�[0m MDM shared test get MDM config profile status (3.37s)
3288:  �[32m✓�[0m MDM shared test get MDM config profile status android no team G1 profile failed (0.01s)
3289:  �[32m✓�[0m MDM shared test get MDM config profile status android team G2 profile failed + verified (0.01s)
3290:  �[32m✓�[0m MDM shared test get MDM config profile status android team G2 profile nil + pending = 2 pending (0.01s)
3291:  �[32m✓�[0m MDM shared test get MDM config profile status android team G2 profile nil=pending (0.01s)
3292:  �[32m✓�[0m MDM shared test get MDM config profile status android team G2 profile pending + verifying (0.01s)
3293:  �[32m✓�[0m MDM shared test get MDM config profile status android team G2 profile verified + verifying (0.01s)
3294:  �[32m✓�[0m MDM shared test get MDM config profile status mac OS no team decl D1 pending failed verified (0.02s)
3295:  �[32m✓�[0m MDM shared test get MDM config profile status mac OS no team profile A1 all pending NULL (0.01s)
3296:  �[32m✓�[0m MDM shared test get MDM config profile status mac OS team decl D2 all failed (0.03s)
3297:  �[32m✓�[0m MDM shared test get MDM config profile status mac OS team profile A2 verifying verified (0.01s)
3298:  �[32m✓�[0m MDM shared test get MDM config profile status windows no team profile W1 all pending NULL (0.01s)
3299:  �[32m✓�[0m MDM shared test get MDM config profile status windows no team profile W1 pending failed (0.02s)
3300:  �[32m✓�[0m MDM shared test get MDM config profile status windows team profile W2 pending (0.01s)
...

3337:  �[32m✓�[0m MDM shared test list MDM config profiles page 4 per page 2, global (0.02s)
3338:  �[32m✓�[0m MDM shared test list MDM config profiles page 4 per page 2, team (0.01s)
3339:  �[32m✓�[0m MDM shared test list MDM config profiles page 4 per page 3, global (0.02s)
3340:  �[32m✓�[0m MDM shared test list MDM config profiles page 4 per page 3, team (0.01s)
3341:  �[32m✓�[0m MDM shared test list MDM config profiles page 5 per page 2, global (0.01s)
3342:  �[32m✓�[0m MDM shared test list MDM config profiles page 5 per page 2, team (0.01s)
3343:  �[32m✓�[0m MDM windows (114.83s)
3344:  �[32m✓�[0m MDM windows test MDM windows command results (4.16s)
3345:  �[32m✓�[0m MDM windows test MDM windows command results with pending result (3.85s)
3346:  �[32m✓�[0m MDM windows test MDM windows config profiles (3.59s)
3347:  �[32m✓�[0m MDM windows test MDM windows config profiles with fleet vars (2.87s)
3348:  �[32m✓�[0m MDM windows test MDM windows disk encryption (14.33s)
3349:  �[32m✓�[0m MDM windows test MDM windows disk encryption disk encryption disabled (0.22s)
3350:  �[32m✓�[0m MDM windows test MDM windows disk encryption disk encryption enabled (10.93s)
3351:  �[32m✓�[0m MDM windows test MDM windows disk encryption disk encryption enabled OS settings filters include windows and mac OS hosts (0.02s)
3352:  �[32m✓�[0m MDM windows test MDM windows disk encryption disk encryption enabled bit locker failed status (2.03s)
3353:  �[32m✓�[0m MDM windows test MDM windows disk encryption disk encryption enabled bit locker host disks must update to transition from verifying to verified (0.98s)
...

3377:  �[32m✓�[0m MDM windows test MDM windows get pending commands (3.25s)
3378:  �[32m✓�[0m MDM windows test MDM windows insert command and upsert host profiles for hosts (3.79s)
3379:  �[32m✓�[0m MDM windows test MDM windows insert command and upsert host profiles for hosts batching works correctly (0.04s)
3380:  �[32m✓�[0m MDM windows test MDM windows insert command and upsert host profiles for hosts duplicate command uuid returns already exists (0.07s)
3381:  �[32m✓�[0m MDM windows test MDM windows insert command and upsert host profiles for hosts empty host list is a noop (0.00s)
3382:  �[32m✓�[0m MDM windows test MDM windows insert command and upsert host profiles for hosts inserts command and profiles for multiple hosts (0.04s)
3383:  �[32m✓�[0m MDM windows test MDM windows insert command and upsert host profiles for hosts upserts update existing host profiles (0.03s)
3384:  �[32m✓�[0m MDM windows test MDM windows insert command for hosts (3.83s)
3385:  �[32m✓�[0m MDM windows test MDM windows profile labels (3.31s)
3386:  �[32m✓�[0m MDM windows test MDM windows profile management (3.62s)
3387:  �[32m✓�[0m MDM windows test MDM windows profiles summary (11.35s)
3388:  �[32m✓�[0m MDM windows test MDM windows profiles summary profiles summary accounts for bitlocker status (5.46s)
3389:  �[32m✓�[0m MDM windows test MDM windows profiles summary profiles summary accounts for bitlocker status bitlocker disabled (0.85s)
3390:  �[32m✓�[0m MDM windows test MDM windows profiles summary profiles summary accounts for bitlocker status bitlocker enabled (4.61s)
3391:  �[32m✓�[0m MDM windows test MDM windows profiles summary profiles summary accounts for bitlocker status bitlocker enabled bit locker host disks must update to transition from verifying to verified (0.43s)
3392:  �[32m✓�[0m MDM windows test MDM windows profiles summary profiles summary accounts for bitlocker status bitlocker enabled bitlocker failed (0.81s)
3393:  �[32m✓�[0m MDM windows test MDM windows profiles summary profiles summary accounts for bitlocker status bitlocker enabled bitlocker pending (1.25s)
3394:  �[32m✓�[0m MDM windows test MDM windows profiles summary profiles summary accounts for bitlocker status bitlocker enabled bitlocker verified (1.04s)
3395:  �[32m✓�[0m MDM windows test MDM windows profiles summary profiles summary accounts for bitlocker status bitlocker enabled bitlocker verifying (1.07s)
3396:  �[32m✓�[0m MDM windows test MDM windows profiles summary profiles summary accounts for host profiles with mixed statuses (2.52s)
3397:  �[32m✓�[0m MDM windows test MDM windows save response (3.52s)
3398:  �[32m✓�[0m MDM windows test MDM windows save response combined atomic and non-atomic profiles (0.15s)
3399:  �[32m✓�[0m MDM windows test MDM windows save response combined atomic and non-atomic profiles fails only for the failed profile (0.08s)
3400:  �[32m✓�[0m MDM windows test MDM windows save response combined atomic and non-atomic profiles saves correctly (0.08s)
...

3458:  �[32m✓�[0m Operating system vulnerabilities list OS vulnerabilities empty (2.80s)
3459:  �[32m✓�[0m Operating system vulnerabilities list OS vulnerabilities returns matching (0.01s)
3460:  �[32m✓�[0m Operating system vulnerabilities list vulns by os name and version (2.79s)
3461:  �[32m✓�[0m Operating system vulnerabilities refresh OS version vulnerabilities (3.72s)
3462:  �[32m✓�[0m Operating system vulnerabilities refresh OS version vulnerabilities cleans up stale entries on refresh (0.14s)
3463:  �[32m✓�[0m Operating system vulnerabilities refresh OS version vulnerabilities populates all-teams aggregated vulnerabilities (0.00s)
3464:  �[32m✓�[0m Operating system vulnerabilities refresh OS version vulnerabilities populates per-team vulnerabilities (0.00s)
3465:  �[32m✓�[0m Operating system vulnerabilities refresh OS version vulnerabilities updates existing vulnerabilities on refresh (0.02s)
3466:  �[32m✓�[0m Operating system vulnerabilities test kernel vulns host count (4.36s)
3467:  �[32m✓�[0m Operating system vulnerabilities test list kernels by OS (4.61s)
3468:  �[32m✓�[0m Operating system vulnerabilities test list kernels by OS RHEL with team (0.50s)
3469:  �[32m✓�[0m Operating system vulnerabilities test list kernels by OS amazon linux with team (0.40s)
3470:  �[32m✓�[0m Operating system vulnerabilities test list kernels by OS ubuntu no team (0.44s)
3471:  �[32m✓�[0m Operating system vulnerabilities test list kernels by OS ubuntu with team (0.53s)
3472:  �[32m✓�[0m Packs (43.37s)
3473:  �[32m✓�[0m Packs apply spec fails on target ID null (3.23s)
3474:  �[32m✓�[0m Packs apply spec missing name (3.17s)
...

3498:  �[32m✓�[0m Policies batched policy membership cleanup on policy update (3.35s)
3499:  �[32m✓�[0m Policies cleanup policy membership (3.40s)
3500:  �[32m✓�[0m Policies cleanup policy membership crash recovery (4.35s)
3501:  �[32m✓�[0m Policies cleanup policy membership crash recovery cron cleans up when no gitops retry (0.13s)
3502:  �[32m✓�[0m Policies cleanup policy membership crash recovery cron clears flag when cleanup already completed (0.04s)
3503:  �[32m✓�[0m Policies cleanup policy membership crash recovery gitops retry re-triggers cleanup (0.22s)
3504:  �[32m✓�[0m Policies del user (3.33s)
3505:  �[32m✓�[0m Policies delete all policy memberships (3.16s)
3506:  �[32m✓�[0m Policies delete policy with script activates next activity (3.64s)
3507:  �[32m✓�[0m Policies delete policy with software activates next activity (3.57s)
3508:  �[32m✓�[0m Policies flipping policies for host (4.29s)
3509:  �[32m✓�[0m Policies get team hosts policy memberships (3.58s)
3510:  �[32m✓�[0m Policies get team hosts policy memberships email priority (3.20s)
3511:  �[32m✓�[0m Policies global policy pending scripts and installs (3.70s)
3512:  �[32m✓�[0m Policies increase policy automation iteration (2.81s)
3513:  �[32m✓�[0m Policies is policy failing (3.06s)
3514:  �[32m✓�[0m Policies list merged team policies (3.53s)
...

3525:  �[32m✓�[0m Policies policy queries for host (3.43s)
3526:  �[32m✓�[0m Policies policy queries for host platforms (3.60s)
3527:  �[32m✓�[0m Policies policy queries for host platforms host 1 global ubuntu (0.00s)
3528:  �[32m✓�[0m Policies policy queries for host platforms host 1 team 1 ubuntu (0.00s)
3529:  �[32m✓�[0m Policies policy queries for host platforms host 1 team 2 ubuntu (0.00s)
3530:  �[32m✓�[0m Policies policy queries for host platforms host 2 global darwin (0.00s)
3531:  �[32m✓�[0m Policies policy queries for host platforms host 2 team 1 darwin (0.00s)
3532:  �[32m✓�[0m Policies policy queries for host platforms host 2 team 2 darwin (0.00s)
3533:  �[32m✓�[0m Policies policy queries for host platforms host 3 global windows (0.01s)
3534:  �[32m✓�[0m Policies policy queries for host platforms host 3 team 1 windows (0.00s)
3535:  �[32m✓�[0m Policies policy queries for host platforms host 3 team 2 windows (0.00s)
3536:  �[32m✓�[0m Policies policy queries for host platforms host 4 global empty platform (0.00s)
3537:  �[32m✓�[0m Policies policy queries for host platforms host 4 team 1 empty platform (0.01s)
3538:  �[32m✓�[0m Policies policy queries for host platforms host 4 team 2 empty platform (0.00s)
3539:  �[32m✓�[0m Policies policy violation days (3.02s)
3540:  �[32m✓�[0m Policies reset attempts on failing to passing async (4.20s)
3541:  �[32m✓�[0m Policies reset attempts on failing to passing sync (3.36s)
3542:  �[32m✓�[0m Policies save (3.96s)
...

3712:  �[32m✓�[0m Scripts update script contents (3.03s)
3713:  �[32m✓�[0m Scripts update script to duplicate content (2.85s)
3714:  �[32m✓�[0m Scripts update script to same content (3.00s)
3715:  �[32m✓�[0m Scripts update shared script content (2.45s)
3716:  �[32m✓�[0m Search like (0.00s)
3717:  �[32m✓�[0m Search like #00 (0.00s)
3718:  �[32m✓�[0m Search like #01 (0.00s)
3719:  �[32m✓�[0m Search like #02 (0.00s)
3720:  �[32m✓�[0m Search like #03 (0.00s)
3721:  �[32m✓�[0m Search like #04 (0.00s)
3722:  �[32m✓�[0m Search like #05 (0.00s)
3723:  �[32m✓�[0m Search like #06 (0.00s)
3724:  �[32m✓�[0m Search like #07 (0.00s)
3725:  �[32m✓�[0m Secret variables (30.27s)
3726:  �[32m✓�[0m Secret variables create secret variable (3.90s)
3727:  �[32m✓�[0m Secret variables create secret variable duplicate name error (0.01s)
3728:  �[32m✓�[0m Secret variables create secret variable successful creation (0.03s)
...

3772:  �[32m✓�[0m Setup experience update status guards terminal states (3.39s)
3773:  �[32m✓�[0m Software (336.45s)
3774:  �[32m✓�[0m Software CPE (3.73s)
3775:  �[32m✓�[0m Software all software iterator (3.91s)
3776:  �[32m✓�[0m Software all software iterator exclude apps source (0.00s)
3777:  �[32m✓�[0m Software all software iterator for custom linux images (3.46s)
3778:  �[32m✓�[0m Software all software iterator include apps source (0.01s)
3779:  �[32m✓�[0m Software all software iterator name filter and not name filter (0.01s)
3780:  �[32m✓�[0m Software all software iterator name filter includes chrome extensions (0.00s)
3781:  �[32m✓�[0m Software all software iterator no filter (0.01s)
3782:  �[32m✓�[0m Software all software iterator partial name filter includes deb packages (0.01s)
3783:  �[32m✓�[0m Software check for deleted installed software (3.78s)
3784:  �[32m✓�[0m Software check for deleted installed software host software installs row isnt removed (0.12s)
3785:  �[32m✓�[0m Software check for deleted installed software installer host count is correct (0.34s)
3786:  �[32m✓�[0m Software count host software install attempts (3.29s)
3787:  �[32m✓�[0m Software create intermediate install failure record (3.36s)
3788:  �[32m✓�[0m Software delete host software installed paths (2.75s)
...

3831:  �[32m✓�[0m Software installers get or generate software installer title ID installer: has upgrade code and FM A, existing title: different name, same upgrade code (0.01s)
3832:  �[32m✓�[0m Software installers get or generate software installer title ID installer: has upgrade code, existing title: same name, different upgrade code (0.01s)
3833:  �[32m✓�[0m Software installers get or generate software installer title ID installer: has upgrade code, existing title: same name, no upgrade code (0.02s)
3834:  �[32m✓�[0m Software installers get or generate software installer title ID installer: has upgrade code, existing title: same name, same upgrade code (0.01s)
3835:  �[32m✓�[0m Software installers get or generate software installer title ID installer: no upgrade code, existing title: same name, has upgrade code (0.01s)
3836:  �[32m✓�[0m Software installers get or generate software installer title ID installer: no upgrade code, existing title: same name, no upgrade code (0.01s)
3837:  �[32m✓�[0m Software installers get or generate software installer title ID title that already exists but doesn't have a bundle identifier (0.01s)
3838:  �[32m✓�[0m Software installers get or generate software installer title ID title that already exists with bundle identifier (0.01s)
3839:  �[32m✓�[0m Software installers get or generate software installer title ID title that already exists with bundle identifier, different source (0.01s)
3840:  �[32m✓�[0m Software installers get or generate software installer title ID title that already exists, mismatched bundle identifier in payload (0.01s)
3841:  �[32m✓�[0m Software installers get or generate software installer title ID title that already exists, no bundle identifier in d B, bundle identifier in payload (0.01s)
3842:  �[32m✓�[0m Software installers get or g...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants