diff --git a/.github/actions/run-android-device-farm-test/action.yml b/.github/actions/run-android-device-farm-test/action.yml index deee639ace..7d0cb1dc1b 100644 --- a/.github/actions/run-android-device-farm-test/action.yml +++ b/.github/actions/run-android-device-farm-test/action.yml @@ -33,6 +33,7 @@ runs: remote_src: true test_spec: | version: 0.1 + android_test_host: amazon_linux_2 phases: install: commands: diff --git a/.github/build-workflows.ps1 b/.github/build-workflows.ps1 index b0b90bb282..7efbcbecd0 100644 --- a/.github/build-workflows.ps1 +++ b/.github/build-workflows.ps1 @@ -1 +1,3 @@ -pkl eval pkl-workflows/*.pkl -o workflows/%{moduleName}.yml \ No newline at end of file +Get-ChildItem -Path './pkl-workflows' -Filter *.pkl -File -Name | ForEach-Object { + &pkl eval ./pkl-workflows/$_ -o "./workflows/$($_.Replace('pkl', 'yml'))" +} diff --git a/.github/pkl-workflows/helpers/Common.pkl b/.github/pkl-workflows/helpers/Common.pkl index 5a3b7a287b..75065704dd 100644 --- a/.github/pkl-workflows/helpers/Common.pkl +++ b/.github/pkl-workflows/helpers/Common.pkl @@ -12,7 +12,7 @@ const linuxArchs: List = List("x86_64", "armhf", "aarch64") const applePlatforms: List = List("iOS", "tvOS") const androidABIs: List = List("armeabi-v7a", "arm64-v8a", "x86", "x86_64") const windowsArchs: List = List("Win32", "x64", "ARM64") -const uwpArchs: List = List("Win32", "x64", "ARM", "ARM64") +const uwpArchs: List = List("Win32", "x64", "ARM64") const appleTargets: List = List("Device", "Simulator") @@ -24,7 +24,7 @@ local const job_Wrappers: String = "build-wrappers" const mainBranch: String = "main" -typealias NetFramework = "net6.0"|"net8.0"|String(startsWith("${{ matrix"))|String(startsWith("net8")) +typealias NetFramework = "net9.0"|"net8.0"|String(startsWith("${{ matrix"))|String(startsWith("net8")) typealias NetRuntime = "win-x64"|"linux-x64"|"osx-x64"|"osx-arm64"|String(startsWith("${{ matrix")) typealias SyncDifferentiator = "ios-maui"|"android-maui"|"tvos"|"macos-maui"|"code-coverage"|"uwp"|"net-framework"|String(startsWith("${{ matrix")) @@ -71,12 +71,8 @@ const function defaultBuildJobs(baasDifferentiators: Listing ["test-net-framework"] = TestJobs.netFramework(baasDifferentiators) ["test-uwp"] = TestJobs.uwp(baasDifferentiators) ["test-net-core"] = TestJobs.netCore(netCoreVersions) - ["test-macos-xamarin"] = TestJobs.macOS_Xamarin() ["test-macos-maui"] = TestJobs.macOS_Maui(baasDifferentiators) - ["test-ios-xamarin"] = TestJobs.iOS_Xamarin() ["test-ios-maui"] = TestJobs.iOS_Maui(baasDifferentiators) - ["test-tvos"] = TestJobs.tvOS(baasDifferentiators) - ["test-android-xamarin"] = TestJobs.android_Xamarin() ["test-android-maui"] = TestJobs.android_Maui(baasDifferentiators) ["test-woven-classes"] = TestJobs.wovenClasses() ["test-source-generation"] = TestJobs.sourceGeneration() diff --git a/.github/pkl-workflows/helpers/Lint.pkl b/.github/pkl-workflows/helpers/Lint.pkl index 044c93a301..1d1db86011 100644 --- a/.github/pkl-workflows/helpers/Lint.pkl +++ b/.github/pkl-workflows/helpers/Lint.pkl @@ -33,7 +33,7 @@ function verifyNamespaces(): gha.Job = new { Steps.checkoutWithoutMatchers(false) ...Steps.fetchPackages(null) new { - run = "dotnet tool install ilspycmd -g --version 8.0.0.7345" + run = "dotnet tool install ilspycmd -g --version 9.0.0.7833-preview3" } new { name = "Verify Namespaces" @@ -66,4 +66,4 @@ function verifyNamespaces(): gha.Job = new { shell = "pwsh" } } -} \ No newline at end of file +} diff --git a/.github/pkl-workflows/helpers/Test.pkl b/.github/pkl-workflows/helpers/Test.pkl index 73e37b02b5..31e3f852d4 100644 --- a/.github/pkl-workflows/helpers/Test.pkl +++ b/.github/pkl-workflows/helpers/Test.pkl @@ -52,13 +52,8 @@ function netCore(frameworks: Listing): gha.Job = testJob( ["os"] = new { new { runner = "windows-latest" runtime = "win-x64" } new { runner = "ubuntu-latest" runtime = "linux-x64" } - new { runner = "macos-14" runtime = "osx-x64" } - } - ["include"] = new { - new { - ["framework"] = "net8.0" - ["os"] = new MatrixOS { runner = "macos-14" runtime = "osx-arm64" } - } + new { runner = "macos-13" runtime = "osx-x64" } + new { runner = "macos-latest" runtime = "osx-arm64" } } } `fail-fast` = false @@ -104,8 +99,8 @@ function weaver(): gha.Job = testJob( }, (config) -> new Listing { ...Steps.checkout(false) - ...Steps.setupWorkloads(null, "6.0.x") - ...Steps.dotnetPublish("Tests/Weaver/Realm.Fody.Tests", "net6.0", "${{ matrix.os.runtime }}", new Mapping {}).toList() + ...Steps.setupWorkloads(null, "8.0.x") + ...Steps.dotnetPublish("Tests/Weaver/Realm.Fody.Tests", "net8.0", "${{ matrix.os.runtime }}", new Mapping {}).toList() ...dotnetRunTests(false) ...reportTestResults(config) }) @@ -119,7 +114,7 @@ function xunit(): gha.Job = testJob( null, (config) -> new Listing { ...prepareTests(config) - ...Steps.dotnetPublish("Tests/Tests.XUnit", "net6.0", "win-x64", new Mapping {}).toList() + ...Steps.dotnetPublish("Tests/Tests.XUnit", "net8.0", "win-x64", new Mapping {}).toList() new { name = "Run Tests" run = "dotnet test \(executableExpression)/Tests.XUnit.dll --logger GitHubActions" @@ -135,7 +130,7 @@ function sourceGeneration(): gha.Job = testJob( (config) -> new Listing { ...Steps.checkout(false) ...Steps.setupWorkloads(null, "6.0.x") - ...Steps.dotnetPublish("Tests/SourceGenerators/Realm.SourceGenerator.Tests", "net6.0", "win-x64", new Mapping {}).toList() + ...Steps.dotnetPublish("Tests/SourceGenerators/Realm.SourceGenerator.Tests", "net8.0", "win-x64", new Mapping {}).toList() ...dotnetRunTests(false) ...reportTestResults(config) }) @@ -157,62 +152,6 @@ function wovenClasses(): gha.Job = testJob( } ) -function tvOS(_syncDifferentiators: Listing): gha.Job = testJob( - new TestConfig { - needsPackages = true - title = "Xamarin.tvOS" - syncDifferentiator = "tvos" - syncDifferentiators = _syncDifferentiators - }, - "macos-12", - null, - (config) -> new Listing { - ...prepareTests(config) - ...buildTests(new Steps.MSBuildConfig { - projects { - "Tests/Tests.XamarinTVOS" - } - properties { - ["Platform"] = "iPhoneSimulator" - } - }) - Steps.runSimulator(new Steps.SimulatorConfig { - appPath = "Tests/Tests.XamarinTVOS/bin/iPhoneSimulator/\(Common.configuration)/Tests.XamarinTVOS.app" - arguments = "--headless --result=${{ github.workspace }}/\(outputFile) --labels=All \(baasTestArgs(config))" - bundleId = "io.realm.Tests-XamarinTVOS" - iphoneToSimulate = "Apple-TV-1080p" - os = "tvOS" - }) - ...reportTestResults(config) - }) - -function iOS_Xamarin(): gha.Job = testJob( - new TestConfig { - needsPackages = true - title = "Xamarin.iOS" - }, - "macos-12", - null, - (config) -> new Listing { - ...prepareTests(config) - ...buildTests(new Steps.MSBuildConfig { - projects { - "Tests/Tests.iOS" - } - properties { - ["Platform"] = "iPhoneSimulator" - } - }) - Steps.runSimulator(new Steps.SimulatorConfig { - appPath = "Tests/Tests.iOS/bin/iPhoneSimulator/\(Common.configuration)/Tests.iOS.app" - arguments = "--headless --result=${{ github.workspace }}/\(outputFile) --labels=All \(baasTestArgs(config))" - bundleId = "io.realm.dotnettests" - iphoneToSimulate = "iPhone-8" - os = "iOS" - }) - ...reportTestResults(config) - }) - function iOS_Maui(_syncDifferentiators: Listing): gha.Job = testJob( new TestConfig { needsPackages = true @@ -221,7 +160,7 @@ function iOS_Maui(_syncDifferentiators: Listing): gha syncDifferentiators = _syncDifferentiators transformResults = true }, - "macos-13", + "macos-latest", null, (config) -> new Listing { ...prepareTests(config) @@ -229,7 +168,7 @@ function iOS_Maui(_syncDifferentiators: Listing): gha Steps.setupXcode("latest-stable") Steps.dotnetBuild("Tests/Tests.Maui", "net8.0-ios", null, getTestProps(false)) Steps.runSimulator(new Steps.SimulatorConfig { - appPath = "Tests/Tests.Maui/bin/\(Common.configuration)/net8.0-ios/iossimulator-x64/Tests.Maui.app" + appPath = "Tests/Tests.Maui/bin/\(Common.configuration)/net8.0-ios/iossimulator-arm64/Tests.Maui.app" arguments = "--headless --result=${{ github.workspace }}/\(outputFile) --labels=All \(baasTestArgs(config))" bundleId = "io.realm.mauitests" iphoneToSimulate = "iPhone-15" @@ -238,27 +177,6 @@ function iOS_Maui(_syncDifferentiators: Listing): gha ...reportTestResults(config) }) -function macOS_Xamarin(): gha.Job = testJob( - new TestConfig { - needsPackages = true - title = "Xamarin.macOS" - }, - "macos-12", - null, - (config) -> new Listing { - ...prepareTests(config) - ...buildTests(new Steps.MSBuildConfig { - projects { - "Tests/Tests.XamarinMac" - } - }) - new { - name = "Run the tests" - run = "Tests/Tests.XamarinMac/bin/\(Common.configuration)/Tests.XamarinMac.app/Contents/MacOS/Tests.XamarinMac --headless --result=${{ github.workspace }}/\(outputFile) --labels=All" - } - ...reportTestResults(config) - }) - function macOS_Maui(_syncDifferentiators: Listing): gha.Job = testJob( new TestConfig { needsPackages = true @@ -267,7 +185,7 @@ function macOS_Maui(_syncDifferentiators: Listing): g syncDifferentiators = _syncDifferentiators transformResults = true }, - "macos-13", + "macos-latest", null, (config) -> new Listing { ...prepareTests(config) @@ -322,33 +240,6 @@ function uwp(_syncDifferentiators: Listing): gha.Job ...reportTestResultsWithCustomFile("${{ env.TEST_RESULTS }}", config) }) -function android_Xamarin(): gha.Job = testJob( - new TestConfig { - needsPackages = true - title = "Xamarin.Android" - }, - new gha.WindowsLatest {}, - null, - (config) -> new Listing { - Steps.setupJDK() - ...prepareTests(config) - ...buildTests(new Steps.MSBuildConfig { - projects { - "Tests/Tests.Android" - } - target = "SignAndroidPackage" - properties { - ["AndroidUseSharedRuntime"] = "False" - ["EmbedAssembliesIntoApk"] = "True" - } - }) - ...Steps.runDeviceFarm(new Steps.DeviceFarmConfig { - apkPath = "${{ github.workspace }}/Tests/Tests.Android/bin/Release/io.realm.xamarintests-Signed.apk" - appId = "io.realm.xamarintests" - }) - ...reportTestResultsWithCustomFile("${{ steps.run_tests.outputs.test-results-path }}", config) - }) - function android_Maui(_syncDifferentiators: Listing): gha.Job = testJob( new TestConfig { needsPackages = true @@ -488,7 +379,7 @@ function benchmark(): gha.Job = testJob( name = "Clear nuget cache" run = "dotnet nuget locals all --clear" } - ...Steps.dotnetPublish("Tests/Benchmarks/PerformanceTests", "net6.0", "linux-x64", getTestProps(true)) + ...Steps.dotnetPublish("Tests/Benchmarks/PerformanceTests", "net8.0", "linux-x64", getTestProps(true)) new { name = "Run the tests" run = "\(executableExpression)/PerformanceTests -f \"*\" --join" @@ -630,7 +521,7 @@ local function archiveCoreDump(): gha.Step = (Steps.uploadArtifacts("crash-repor } local class MatrixOS { - runner: "windows-latest"|"ubuntu-latest"|"macos-13"|"macos-14" + runner: "windows-latest"|"ubuntu-latest"|"macos-13"|"macos-latest" runtime: Common.NetRuntime } diff --git a/.github/pkl-workflows/main.pkl b/.github/pkl-workflows/main.pkl index 403cc6eb94..cf70a90c3a 100644 --- a/.github/pkl-workflows/main.pkl +++ b/.github/pkl-workflows/main.pkl @@ -17,7 +17,7 @@ local baasDifferentiators: Listing = new { } local netCoreFrameworks: Listing = new { - "net6.0" + "net9.0" "net8.0" } diff --git a/.github/pkl-workflows/pr.pkl b/.github/pkl-workflows/pr.pkl index 05baa35ebe..d3b3aea6a1 100644 --- a/.github/pkl-workflows/pr.pkl +++ b/.github/pkl-workflows/pr.pkl @@ -9,7 +9,7 @@ local baasDifferentiators: Listing = new { } local netCoreFrameworks: Listing = new { - "net6.0" + "net8.0" } name = "PR Build" @@ -41,4 +41,4 @@ concurrency { `cancel-in-progress` = true } -jobs = Common.defaultBuildJobs(baasDifferentiators, netCoreFrameworks) \ No newline at end of file +jobs = Common.defaultBuildJobs(baasDifferentiators, netCoreFrameworks) diff --git a/.github/pkl-workflows/wrappers.pkl b/.github/pkl-workflows/wrappers.pkl index 20ae20aa9b..aab2c70f5d 100644 --- a/.github/pkl-workflows/wrappers.pkl +++ b/.github/pkl-workflows/wrappers.pkl @@ -48,7 +48,7 @@ jobs { } } ["macos"] = new Job { - `runs-on` = "macos-12" + `runs-on` = "macos-latest" name = "MacOS" } |> wrappersJob(new JobConfig { cmd = "./wrappers/build-macos.sh" @@ -58,7 +58,7 @@ jobs { } }) ["catalyst"] = new Job { - `runs-on` = "macos-12" + `runs-on` = "macos-latest" name = "Catalyst" } |> wrappersJob(new JobConfig { cmd = "pwsh ./wrappers/build-apple-platform.ps1 Catalyst" @@ -75,14 +75,14 @@ jobs { } `fail-fast` = false } - `runs-on` = "macos-12" + `runs-on` = "macos-latest" name = "Apple Platform" } |> wrappersJob(new JobConfig { cmd = "pwsh ./wrappers/build-apple-platform.ps1 ${{ matrix.platform }} -Targets ${{ matrix.target }}" enableLTO = false platform = "${{ matrix.platform }}-${{ matrix.target }}" intermediateSteps { - Steps.setupXcode("14") + Steps.setupXcode("latest-stable") Steps.setupCmake("3.29.0") } ifCondition = "\(Common.applePlatformTargets((platform, target) -> "needs.\(job_CheckCache).outputs.wrappers-\(platform)-\(target) != 'true'").join(" || "))" @@ -212,4 +212,4 @@ local class JobConfig { hidden configParam = "\(if (cmd.startsWith("pwsh")) "-Configuration " else "--configuration=")\(Common.configuration)" hidden ltoParam = if (!enableLTO) "" else (if (cmd.startsWith("pwsh")) "-EnableLTO" else "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION='ON'") -} \ No newline at end of file +} diff --git a/.github/workflows/check-pr-title.yml b/.github/workflows/check-pr-title.yml deleted file mode 100644 index 1842f5bf39..0000000000 --- a/.github/workflows/check-pr-title.yml +++ /dev/null @@ -1,22 +0,0 @@ -# NOTE: This is a common file that is overwritten by realm/ci-actions sync service -# and should only be modified in that repository. - -name: "Check PR Title" -on: - pull_request: - types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled, converted_to_draft, edited] - -jobs: - check-pr-title: - name: Check PR Title - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - submodules: false - - name: Enforce PR title - uses: realm/ci-actions/title-checker@main - with: - regex: R[A-Z]{2,6}-[0-9]{1,6} - error-hint: Invalid PR title. Make sure it's prefixed with the JIRA ticket the PR addresses or add the no-jira-ticket label. - ignore-labels: 'no-jira-ticket' \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b5a76a6019..9b68e4eaf6 100755 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -174,11 +174,6 @@ jobs: with: name: wrappers-windows-uwp-x64 path: wrappers/build - - name: Fetch wrappers for windows-uwp-ARM - uses: actions/download-artifact@v4 - with: - name: wrappers-windows-uwp-ARM - path: wrappers/build - name: Fetch wrappers for windows-uwp-ARM64 uses: actions/download-artifact@v4 with: @@ -619,20 +614,17 @@ jobs: strategy: matrix: framework: - - net6.0 + - net9.0 - net8.0 os: - runner: windows-latest runtime: win-x64 - runner: ubuntu-latest runtime: linux-x64 - - runner: macos-14 + - runner: macos-13 runtime: osx-x64 - include: - - framework: net8.0 - os: - runner: macos-14 - runtime: osx-arm64 + - runner: macos-latest + runtime: osx-arm64 fail-fast: false runs-on: ${{ matrix.os.runner }} timeout-minutes: 60 @@ -699,57 +691,13 @@ jobs: list-suites: failed path-replace-backslashes: true fail-on-error: true - test-macos-xamarin: - name: Test Xamarin.macOS - if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') - needs: - - build-packages - runs-on: macos-12 - timeout-minutes: 60 - steps: - - name: Checkout Code - uses: actions/checkout@v4 - with: - submodules: false - ref: ${{ github.event.pull_request.head.sha }} - - name: Register problem matchers - run: |- - echo "::add-matcher::.github/problem-matchers/csc.json" - echo "::add-matcher::.github/problem-matchers/msvc.json" - - name: Fetch Realm - uses: actions/download-artifact@v4 - with: - name: Realm.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Fetch Realm.PlatformHelpers - uses: actions/download-artifact@v4 - with: - name: Realm.PlatformHelpers.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Add msbuild to PATH - if: ${{ runner.os == 'Windows' }} - uses: microsoft/setup-msbuild@70b70342ae97ca98d5eaad06cafd26d30f9592a9 - - name: Build Tests/Tests.XamarinMac - run: msbuild Tests/Tests.XamarinMac -restore -p:Configuration=Release -p:RestoreConfigFile=Tests/Test.NuGet.Config -p:UseRealmNupkgsWithVersion=${{ needs.build-packages.outputs.package_version }} - - name: Run the tests - run: Tests/Tests.XamarinMac/bin/Release/Tests.XamarinMac.app/Contents/MacOS/Tests.XamarinMac --headless --result=${{ github.workspace }}/TestResults.xml --labels=All - - name: Publish Unit Test Results - if: always() - uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 - with: - name: Results Xamarin.macOS - path: TestResults.xml - reporter: java-junit - list-suites: failed - path-replace-backslashes: true - fail-on-error: true test-macos-maui: name: Test Maui.MacCatalyst if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') needs: - build-packages - deploy-baas - runs-on: macos-13 + runs-on: macos-latest timeout-minutes: 60 steps: - name: Checkout Code @@ -799,63 +747,13 @@ jobs: list-suites: failed path-replace-backslashes: true fail-on-error: true - test-ios-xamarin: - name: Test Xamarin.iOS - if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') - needs: - - build-packages - runs-on: macos-12 - timeout-minutes: 60 - steps: - - name: Checkout Code - uses: actions/checkout@v4 - with: - submodules: false - ref: ${{ github.event.pull_request.head.sha }} - - name: Register problem matchers - run: |- - echo "::add-matcher::.github/problem-matchers/csc.json" - echo "::add-matcher::.github/problem-matchers/msvc.json" - - name: Fetch Realm - uses: actions/download-artifact@v4 - with: - name: Realm.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Fetch Realm.PlatformHelpers - uses: actions/download-artifact@v4 - with: - name: Realm.PlatformHelpers.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Add msbuild to PATH - if: ${{ runner.os == 'Windows' }} - uses: microsoft/setup-msbuild@70b70342ae97ca98d5eaad06cafd26d30f9592a9 - - name: Build Tests/Tests.iOS - run: msbuild Tests/Tests.iOS -restore -p:Configuration=Release -p:Platform=iPhoneSimulator -p:RestoreConfigFile=Tests/Test.NuGet.Config -p:UseRealmNupkgsWithVersion=${{ needs.build-packages.outputs.package_version }} - - name: Run on Simulator - uses: realm/ci-actions/run-ios-simulator@6418e15ed9bbdb19b7d456a347e5623779f95cdf - with: - appPath: Tests/Tests.iOS/bin/iPhoneSimulator/Release/Tests.iOS.app - bundleId: io.realm.dotnettests - iphoneToSimulate: iPhone-8 - arguments: '--headless --result=${{ github.workspace }}/TestResults.xml --labels=All ' - os: iOS - - name: Publish Unit Test Results - if: always() - uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 - with: - name: Results Xamarin.iOS - path: TestResults.xml - reporter: java-junit - list-suites: failed - path-replace-backslashes: true - fail-on-error: true test-ios-maui: name: Test Maui.iOS if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') needs: - build-packages - deploy-baas - runs-on: macos-13 + runs-on: macos-latest timeout-minutes: 60 steps: - name: Checkout Code @@ -894,7 +792,7 @@ jobs: - name: Run on Simulator uses: realm/ci-actions/run-ios-simulator@6418e15ed9bbdb19b7d456a347e5623779f95cdf with: - appPath: Tests/Tests.Maui/bin/Release/net8.0-ios/iossimulator-x64/Tests.Maui.app + appPath: Tests/Tests.Maui/bin/Release/net8.0-ios/iossimulator-arm64/Tests.Maui.app bundleId: io.realm.mauitests iphoneToSimulate: iPhone-15 arguments: --headless --result=${{ github.workspace }}/TestResults.xml --labels=All --baasaas-api-key=${{ secrets.BAASAAS_API_KEY}} --baas-differentiator=ios-maui-${{ github.run_id }}-${{ github.run_attempt }} @@ -911,117 +809,6 @@ jobs: list-suites: failed path-replace-backslashes: true fail-on-error: true - test-tvos: - name: Test Xamarin.tvOS - if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') - needs: - - build-packages - runs-on: macos-12 - timeout-minutes: 60 - steps: - - name: Checkout Code - uses: actions/checkout@v4 - with: - submodules: false - ref: ${{ github.event.pull_request.head.sha }} - - name: Register problem matchers - run: |- - echo "::add-matcher::.github/problem-matchers/csc.json" - echo "::add-matcher::.github/problem-matchers/msvc.json" - - name: Fetch Realm - uses: actions/download-artifact@v4 - with: - name: Realm.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Fetch Realm.PlatformHelpers - uses: actions/download-artifact@v4 - with: - name: Realm.PlatformHelpers.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Add msbuild to PATH - if: ${{ runner.os == 'Windows' }} - uses: microsoft/setup-msbuild@70b70342ae97ca98d5eaad06cafd26d30f9592a9 - - name: Build Tests/Tests.XamarinTVOS - run: msbuild Tests/Tests.XamarinTVOS -restore -p:Configuration=Release -p:Platform=iPhoneSimulator -p:RestoreConfigFile=Tests/Test.NuGet.Config -p:UseRealmNupkgsWithVersion=${{ needs.build-packages.outputs.package_version }} - - name: Run on Simulator - uses: realm/ci-actions/run-ios-simulator@6418e15ed9bbdb19b7d456a347e5623779f95cdf - with: - appPath: Tests/Tests.XamarinTVOS/bin/iPhoneSimulator/Release/Tests.XamarinTVOS.app - bundleId: io.realm.Tests-XamarinTVOS - iphoneToSimulate: Apple-TV-1080p - arguments: '--headless --result=${{ github.workspace }}/TestResults.xml --labels=All ' - os: tvOS - - name: Publish Unit Test Results - if: always() - uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 - with: - name: Results Xamarin.tvOS - path: TestResults.xml - reporter: java-junit - list-suites: failed - path-replace-backslashes: true - fail-on-error: true - test-android-xamarin: - name: Test Xamarin.Android - if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') - needs: - - build-packages - runs-on: windows-latest - timeout-minutes: 60 - steps: - - name: Setup JDK - uses: actions/setup-java@2e74cbce18569d23ca8b812590dbb83f13ac7c5a - with: - distribution: microsoft - java-version: 17 - - name: Checkout Code - uses: actions/checkout@v4 - with: - submodules: false - ref: ${{ github.event.pull_request.head.sha }} - - name: Register problem matchers - run: |- - echo "::add-matcher::.github/problem-matchers/csc.json" - echo "::add-matcher::.github/problem-matchers/msvc.json" - - name: Fetch Realm - uses: actions/download-artifact@v4 - with: - name: Realm.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Fetch Realm.PlatformHelpers - uses: actions/download-artifact@v4 - with: - name: Realm.PlatformHelpers.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Add msbuild to PATH - if: ${{ runner.os == 'Windows' }} - uses: microsoft/setup-msbuild@70b70342ae97ca98d5eaad06cafd26d30f9592a9 - - name: Build Tests/Tests.Android - run: msbuild Tests/Tests.Android -t:SignAndroidPackage -restore -p:Configuration=Release -p:AndroidUseSharedRuntime=False -p:EmbedAssembliesIntoApk=True -p:RestoreConfigFile=Tests/Test.NuGet.Config -p:UseRealmNupkgsWithVersion=${{ needs.build-packages.outputs.package_version }} - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v4.0.2 - with: - aws-access-key-id: ${{ secrets.AWS_DEVICEFARM_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_DEVICEFARM_SECRET_ACCESS_KEY }} - aws-region: us-west-2 - - name: Run the tests - id: run_tests - uses: ./.github/actions/run-android-device-farm-test - with: - apk-path: ${{ github.workspace }}/Tests/Tests.Android/bin/Release/io.realm.xamarintests-Signed.apk - app-id: io.realm.xamarintests - project-arn: ${{ secrets.DEVICEFARM_PROJECT_ARN }} - device-pool-arn: ${{ secrets.DEVICEFARM_ANDROID_POOL_ARN }} - - name: Publish Unit Test Results - if: always() - uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 - with: - name: Results Xamarin.Android - path: ${{ steps.run_tests.outputs.test-results-path }} - reporter: java-junit - list-suites: failed - path-replace-backslashes: true - fail-on-error: true test-android-maui: name: Test Maui.Android if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') @@ -1161,11 +948,11 @@ jobs: - name: Setup workloads run: dotnet workload install android ${{ (runner.os != 'Linux' && 'tvos ios maccatalyst') || '' }} - name: Publish Tests/SourceGenerators/Realm.SourceGenerator.Tests - run: dotnet publish Tests/SourceGenerators/Realm.SourceGenerator.Tests -c Release -f net6.0 -r win-x64 --no-self-contained + run: dotnet publish Tests/SourceGenerators/Realm.SourceGenerator.Tests -c Release -f net8.0 -r win-x64 --no-self-contained - name: Output executable path id: dotnet-publish shell: bash - run: echo 'executable-path=./Tests/SourceGenerators/Realm.SourceGenerator.Tests/bin/Release/net6.0/win-x64/Realm.SourceGenerator.Tests' >> $GITHUB_OUTPUT + run: echo 'executable-path=./Tests/SourceGenerators/Realm.SourceGenerator.Tests/bin/Release/net8.0/win-x64/Realm.SourceGenerator.Tests' >> $GITHUB_OUTPUT - name: Run the tests run: ${{ steps.dotnet-publish.outputs.executable-path }} --result=TestResults.xml --labels=After - name: Publish Unit Test Results @@ -1205,15 +992,15 @@ jobs: echo "::add-matcher::.github/problem-matchers/msvc.json" - uses: actions/setup-dotnet@5d1464d5da459f3d7085106d52e499f4dc5d0f59 with: - dotnet-version: 6.0.x + dotnet-version: 8.0.x - name: Setup workloads run: dotnet workload install android ${{ (runner.os != 'Linux' && 'tvos ios maccatalyst') || '' }} - name: Publish Tests/Weaver/Realm.Fody.Tests - run: dotnet publish Tests/Weaver/Realm.Fody.Tests -c Release -f net6.0 -r ${{ matrix.os.runtime }} --no-self-contained + run: dotnet publish Tests/Weaver/Realm.Fody.Tests -c Release -f net8.0 -r ${{ matrix.os.runtime }} --no-self-contained - name: Output executable path id: dotnet-publish shell: bash - run: echo 'executable-path=./Tests/Weaver/Realm.Fody.Tests/bin/Release/net6.0/${{ matrix.os.runtime }}/Realm.Fody.Tests' >> $GITHUB_OUTPUT + run: echo 'executable-path=./Tests/Weaver/Realm.Fody.Tests/bin/Release/net8.0/${{ matrix.os.runtime }}/Realm.Fody.Tests' >> $GITHUB_OUTPUT - name: Run the tests run: ${{ steps.dotnet-publish.outputs.executable-path }} --result=TestResults.xml --labels=After - name: Publish Unit Test Results @@ -1365,7 +1152,7 @@ jobs: with: name: Realm.UnityWeaver.${{ needs.build-packages.outputs.package_version }} path: ${{ github.workspace }}/Realm/packages/ - - run: dotnet tool install ilspycmd -g --version 8.0.0.7345 + - run: dotnet tool install ilspycmd -g --version 9.0.0.7833-preview3 - name: Verify Namespaces shell: pwsh run: |- @@ -1472,11 +1259,11 @@ jobs: name: Realm.PlatformHelpers.${{ needs.build-packages.outputs.package_version }} path: ${{ github.workspace }}/Realm/packages/ - name: Publish Tests/Tests.XUnit - run: dotnet publish Tests/Tests.XUnit -c Release -f net6.0 -r win-x64 --no-self-contained + run: dotnet publish Tests/Tests.XUnit -c Release -f net8.0 -r win-x64 --no-self-contained - name: Output executable path id: dotnet-publish shell: bash - run: echo 'executable-path=./Tests/Tests.XUnit/bin/Release/net6.0/win-x64/Tests.XUnit' >> $GITHUB_OUTPUT + run: echo 'executable-path=./Tests/Tests.XUnit/bin/Release/net8.0/win-x64/Tests.XUnit' >> $GITHUB_OUTPUT - name: Run Tests run: dotnet test ${{ steps.dotnet-publish.outputs.executable-path }}/Tests.XUnit.dll --logger GitHubActions benchmark-linux: @@ -1511,11 +1298,11 @@ jobs: - name: Clear nuget cache run: dotnet nuget locals all --clear - name: Publish Tests/Benchmarks/PerformanceTests - run: dotnet publish Tests/Benchmarks/PerformanceTests -c Release -f net6.0 -r linux-x64 -p:RestoreConfigFile=Tests/Test.NuGet.Config -p:UseRealmNupkgsWithVersion=${{ needs.build-packages.outputs.package_version }} -p:RealmTestsStandaloneExe=true --no-self-contained + run: dotnet publish Tests/Benchmarks/PerformanceTests -c Release -f net8.0 -r linux-x64 -p:RestoreConfigFile=Tests/Test.NuGet.Config -p:UseRealmNupkgsWithVersion=${{ needs.build-packages.outputs.package_version }} -p:RealmTestsStandaloneExe=true --no-self-contained - name: Output executable path id: dotnet-publish shell: bash - run: echo 'executable-path=./Tests/Benchmarks/PerformanceTests/bin/Release/net6.0/linux-x64/PerformanceTests' >> $GITHUB_OUTPUT + run: echo 'executable-path=./Tests/Benchmarks/PerformanceTests/bin/Release/net8.0/linux-x64/PerformanceTests' >> $GITHUB_OUTPUT - name: Run the tests run: ${{ steps.dotnet-publish.outputs.executable-path }}/PerformanceTests -f "*" --join - name: Find Results file diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index b917bf821c..ac1b2f9289 100755 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -174,11 +174,6 @@ jobs: with: name: wrappers-windows-uwp-x64 path: wrappers/build - - name: Fetch wrappers for windows-uwp-ARM - uses: actions/download-artifact@v4 - with: - name: wrappers-windows-uwp-ARM - path: wrappers/build - name: Fetch wrappers for windows-uwp-ARM64 uses: actions/download-artifact@v4 with: @@ -611,19 +606,16 @@ jobs: strategy: matrix: framework: - - net6.0 + - net8.0 os: - runner: windows-latest runtime: win-x64 - runner: ubuntu-latest runtime: linux-x64 - - runner: macos-14 + - runner: macos-13 runtime: osx-x64 - include: - - framework: net8.0 - os: - runner: macos-14 - runtime: osx-arm64 + - runner: macos-latest + runtime: osx-arm64 fail-fast: false runs-on: ${{ matrix.os.runner }} timeout-minutes: 60 @@ -690,56 +682,12 @@ jobs: list-suites: failed path-replace-backslashes: true fail-on-error: true - test-macos-xamarin: - name: Test Xamarin.macOS - if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') - needs: - - build-packages - runs-on: macos-12 - timeout-minutes: 60 - steps: - - name: Checkout Code - uses: actions/checkout@v4 - with: - submodules: false - ref: ${{ github.event.pull_request.head.sha }} - - name: Register problem matchers - run: |- - echo "::add-matcher::.github/problem-matchers/csc.json" - echo "::add-matcher::.github/problem-matchers/msvc.json" - - name: Fetch Realm - uses: actions/download-artifact@v4 - with: - name: Realm.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Fetch Realm.PlatformHelpers - uses: actions/download-artifact@v4 - with: - name: Realm.PlatformHelpers.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Add msbuild to PATH - if: ${{ runner.os == 'Windows' }} - uses: microsoft/setup-msbuild@70b70342ae97ca98d5eaad06cafd26d30f9592a9 - - name: Build Tests/Tests.XamarinMac - run: msbuild Tests/Tests.XamarinMac -restore -p:Configuration=Release -p:RestoreConfigFile=Tests/Test.NuGet.Config -p:UseRealmNupkgsWithVersion=${{ needs.build-packages.outputs.package_version }} - - name: Run the tests - run: Tests/Tests.XamarinMac/bin/Release/Tests.XamarinMac.app/Contents/MacOS/Tests.XamarinMac --headless --result=${{ github.workspace }}/TestResults.xml --labels=All - - name: Publish Unit Test Results - if: always() - uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 - with: - name: Results Xamarin.macOS - path: TestResults.xml - reporter: java-junit - list-suites: failed - path-replace-backslashes: true - fail-on-error: true test-macos-maui: name: Test Maui.MacCatalyst if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') needs: - build-packages - runs-on: macos-13 + runs-on: macos-latest timeout-minutes: 60 steps: - name: Checkout Code @@ -786,62 +734,12 @@ jobs: list-suites: failed path-replace-backslashes: true fail-on-error: true - test-ios-xamarin: - name: Test Xamarin.iOS - if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') - needs: - - build-packages - runs-on: macos-12 - timeout-minutes: 60 - steps: - - name: Checkout Code - uses: actions/checkout@v4 - with: - submodules: false - ref: ${{ github.event.pull_request.head.sha }} - - name: Register problem matchers - run: |- - echo "::add-matcher::.github/problem-matchers/csc.json" - echo "::add-matcher::.github/problem-matchers/msvc.json" - - name: Fetch Realm - uses: actions/download-artifact@v4 - with: - name: Realm.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Fetch Realm.PlatformHelpers - uses: actions/download-artifact@v4 - with: - name: Realm.PlatformHelpers.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Add msbuild to PATH - if: ${{ runner.os == 'Windows' }} - uses: microsoft/setup-msbuild@70b70342ae97ca98d5eaad06cafd26d30f9592a9 - - name: Build Tests/Tests.iOS - run: msbuild Tests/Tests.iOS -restore -p:Configuration=Release -p:Platform=iPhoneSimulator -p:RestoreConfigFile=Tests/Test.NuGet.Config -p:UseRealmNupkgsWithVersion=${{ needs.build-packages.outputs.package_version }} - - name: Run on Simulator - uses: realm/ci-actions/run-ios-simulator@6418e15ed9bbdb19b7d456a347e5623779f95cdf - with: - appPath: Tests/Tests.iOS/bin/iPhoneSimulator/Release/Tests.iOS.app - bundleId: io.realm.dotnettests - iphoneToSimulate: iPhone-8 - arguments: '--headless --result=${{ github.workspace }}/TestResults.xml --labels=All ' - os: iOS - - name: Publish Unit Test Results - if: always() - uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 - with: - name: Results Xamarin.iOS - path: TestResults.xml - reporter: java-junit - list-suites: failed - path-replace-backslashes: true - fail-on-error: true test-ios-maui: name: Test Maui.iOS if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') needs: - build-packages - runs-on: macos-13 + runs-on: macos-latest timeout-minutes: 60 steps: - name: Checkout Code @@ -877,7 +775,7 @@ jobs: - name: Run on Simulator uses: realm/ci-actions/run-ios-simulator@6418e15ed9bbdb19b7d456a347e5623779f95cdf with: - appPath: Tests/Tests.Maui/bin/Release/net8.0-ios/iossimulator-x64/Tests.Maui.app + appPath: Tests/Tests.Maui/bin/Release/net8.0-ios/iossimulator-arm64/Tests.Maui.app bundleId: io.realm.mauitests iphoneToSimulate: iPhone-15 arguments: '--headless --result=${{ github.workspace }}/TestResults.xml --labels=All ' @@ -894,117 +792,6 @@ jobs: list-suites: failed path-replace-backslashes: true fail-on-error: true - test-tvos: - name: Test Xamarin.tvOS - if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') - needs: - - build-packages - runs-on: macos-12 - timeout-minutes: 60 - steps: - - name: Checkout Code - uses: actions/checkout@v4 - with: - submodules: false - ref: ${{ github.event.pull_request.head.sha }} - - name: Register problem matchers - run: |- - echo "::add-matcher::.github/problem-matchers/csc.json" - echo "::add-matcher::.github/problem-matchers/msvc.json" - - name: Fetch Realm - uses: actions/download-artifact@v4 - with: - name: Realm.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Fetch Realm.PlatformHelpers - uses: actions/download-artifact@v4 - with: - name: Realm.PlatformHelpers.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Add msbuild to PATH - if: ${{ runner.os == 'Windows' }} - uses: microsoft/setup-msbuild@70b70342ae97ca98d5eaad06cafd26d30f9592a9 - - name: Build Tests/Tests.XamarinTVOS - run: msbuild Tests/Tests.XamarinTVOS -restore -p:Configuration=Release -p:Platform=iPhoneSimulator -p:RestoreConfigFile=Tests/Test.NuGet.Config -p:UseRealmNupkgsWithVersion=${{ needs.build-packages.outputs.package_version }} - - name: Run on Simulator - uses: realm/ci-actions/run-ios-simulator@6418e15ed9bbdb19b7d456a347e5623779f95cdf - with: - appPath: Tests/Tests.XamarinTVOS/bin/iPhoneSimulator/Release/Tests.XamarinTVOS.app - bundleId: io.realm.Tests-XamarinTVOS - iphoneToSimulate: Apple-TV-1080p - arguments: '--headless --result=${{ github.workspace }}/TestResults.xml --labels=All ' - os: tvOS - - name: Publish Unit Test Results - if: always() - uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 - with: - name: Results Xamarin.tvOS - path: TestResults.xml - reporter: java-junit - list-suites: failed - path-replace-backslashes: true - fail-on-error: true - test-android-xamarin: - name: Test Xamarin.Android - if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') - needs: - - build-packages - runs-on: windows-latest - timeout-minutes: 60 - steps: - - name: Setup JDK - uses: actions/setup-java@2e74cbce18569d23ca8b812590dbb83f13ac7c5a - with: - distribution: microsoft - java-version: 17 - - name: Checkout Code - uses: actions/checkout@v4 - with: - submodules: false - ref: ${{ github.event.pull_request.head.sha }} - - name: Register problem matchers - run: |- - echo "::add-matcher::.github/problem-matchers/csc.json" - echo "::add-matcher::.github/problem-matchers/msvc.json" - - name: Fetch Realm - uses: actions/download-artifact@v4 - with: - name: Realm.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Fetch Realm.PlatformHelpers - uses: actions/download-artifact@v4 - with: - name: Realm.PlatformHelpers.${{ needs.build-packages.outputs.package_version }} - path: ${{ github.workspace }}/Realm/packages/ - - name: Add msbuild to PATH - if: ${{ runner.os == 'Windows' }} - uses: microsoft/setup-msbuild@70b70342ae97ca98d5eaad06cafd26d30f9592a9 - - name: Build Tests/Tests.Android - run: msbuild Tests/Tests.Android -t:SignAndroidPackage -restore -p:Configuration=Release -p:AndroidUseSharedRuntime=False -p:EmbedAssembliesIntoApk=True -p:RestoreConfigFile=Tests/Test.NuGet.Config -p:UseRealmNupkgsWithVersion=${{ needs.build-packages.outputs.package_version }} - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v4.0.2 - with: - aws-access-key-id: ${{ secrets.AWS_DEVICEFARM_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_DEVICEFARM_SECRET_ACCESS_KEY }} - aws-region: us-west-2 - - name: Run the tests - id: run_tests - uses: ./.github/actions/run-android-device-farm-test - with: - apk-path: ${{ github.workspace }}/Tests/Tests.Android/bin/Release/io.realm.xamarintests-Signed.apk - app-id: io.realm.xamarintests - project-arn: ${{ secrets.DEVICEFARM_PROJECT_ARN }} - device-pool-arn: ${{ secrets.DEVICEFARM_ANDROID_POOL_ARN }} - - name: Publish Unit Test Results - if: always() - uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 - with: - name: Results Xamarin.Android - path: ${{ steps.run_tests.outputs.test-results-path }} - reporter: java-junit - list-suites: failed - path-replace-backslashes: true - fail-on-error: true test-android-maui: name: Test Maui.Android if: always() && !cancelled() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') @@ -1140,11 +927,11 @@ jobs: - name: Setup workloads run: dotnet workload install android ${{ (runner.os != 'Linux' && 'tvos ios maccatalyst') || '' }} - name: Publish Tests/SourceGenerators/Realm.SourceGenerator.Tests - run: dotnet publish Tests/SourceGenerators/Realm.SourceGenerator.Tests -c Release -f net6.0 -r win-x64 --no-self-contained + run: dotnet publish Tests/SourceGenerators/Realm.SourceGenerator.Tests -c Release -f net8.0 -r win-x64 --no-self-contained - name: Output executable path id: dotnet-publish shell: bash - run: echo 'executable-path=./Tests/SourceGenerators/Realm.SourceGenerator.Tests/bin/Release/net6.0/win-x64/Realm.SourceGenerator.Tests' >> $GITHUB_OUTPUT + run: echo 'executable-path=./Tests/SourceGenerators/Realm.SourceGenerator.Tests/bin/Release/net8.0/win-x64/Realm.SourceGenerator.Tests' >> $GITHUB_OUTPUT - name: Run the tests run: ${{ steps.dotnet-publish.outputs.executable-path }} --result=TestResults.xml --labels=After - name: Publish Unit Test Results @@ -1184,15 +971,15 @@ jobs: echo "::add-matcher::.github/problem-matchers/msvc.json" - uses: actions/setup-dotnet@5d1464d5da459f3d7085106d52e499f4dc5d0f59 with: - dotnet-version: 6.0.x + dotnet-version: 8.0.x - name: Setup workloads run: dotnet workload install android ${{ (runner.os != 'Linux' && 'tvos ios maccatalyst') || '' }} - name: Publish Tests/Weaver/Realm.Fody.Tests - run: dotnet publish Tests/Weaver/Realm.Fody.Tests -c Release -f net6.0 -r ${{ matrix.os.runtime }} --no-self-contained + run: dotnet publish Tests/Weaver/Realm.Fody.Tests -c Release -f net8.0 -r ${{ matrix.os.runtime }} --no-self-contained - name: Output executable path id: dotnet-publish shell: bash - run: echo 'executable-path=./Tests/Weaver/Realm.Fody.Tests/bin/Release/net6.0/${{ matrix.os.runtime }}/Realm.Fody.Tests' >> $GITHUB_OUTPUT + run: echo 'executable-path=./Tests/Weaver/Realm.Fody.Tests/bin/Release/net8.0/${{ matrix.os.runtime }}/Realm.Fody.Tests' >> $GITHUB_OUTPUT - name: Run the tests run: ${{ steps.dotnet-publish.outputs.executable-path }} --result=TestResults.xml --labels=After - name: Publish Unit Test Results @@ -1332,7 +1119,7 @@ jobs: with: name: Realm.UnityWeaver.${{ needs.build-packages.outputs.package_version }} path: ${{ github.workspace }}/Realm/packages/ - - run: dotnet tool install ilspycmd -g --version 8.0.0.7345 + - run: dotnet tool install ilspycmd -g --version 9.0.0.7833-preview3 - name: Verify Namespaces shell: pwsh run: |- diff --git a/.github/workflows/wrappers.yml b/.github/workflows/wrappers.yml index f13a31a2e3..c8f75014ea 100755 --- a/.github/workflows/wrappers.yml +++ b/.github/workflows/wrappers.yml @@ -34,7 +34,6 @@ jobs: wrappers-windows-ARM64: ${{ steps.check-cache-windows-ARM64.outputs.cache-hit }} wrappers-windows-uwp-Win32: ${{ steps.check-cache-windows-uwp-Win32.outputs.cache-hit }} wrappers-windows-uwp-x64: ${{ steps.check-cache-windows-uwp-x64.outputs.cache-hit }} - wrappers-windows-uwp-ARM: ${{ steps.check-cache-windows-uwp-ARM.outputs.cache-hit }} wrappers-windows-uwp-ARM64: ${{ steps.check-cache-windows-uwp-ARM64.outputs.cache-hit }} wrappers-iOS-Device: ${{ steps.check-cache-iOS-Device.outputs.cache-hit }} wrappers-iOS-Simulator: ${{ steps.check-cache-iOS-Simulator.outputs.cache-hit }} @@ -284,23 +283,6 @@ jobs: if-no-files-found: error - if: matrix.os == 'windows' run: git clean -fdx - - name: Check Cache for windows-uwp-ARM - id: check-cache-windows-uwp-ARM - if: matrix.os == 'windows' - uses: actions/cache/restore@v4 - with: - path: ./wrappers/build/** - key: wrappers-windows-uwp-ARM-Release-${{hashFiles('./wrappers/**')}} - - name: Store artifacts for wrappers-windows-uwp-ARM - if: matrix.os == 'windows' && steps.check-cache-windows-uwp-ARM.outputs.cache-hit == 'true' - uses: actions/upload-artifact@v4 - with: - name: wrappers-windows-uwp-ARM - path: wrappers/build/** - retention-days: ${{ github.event_name != 'pull_request' && 30 || 1 }} - if-no-files-found: error - - if: matrix.os == 'windows' - run: git clean -fdx - name: Check Cache for windows-uwp-ARM64 id: check-cache-windows-uwp-ARM64 if: matrix.os == 'windows' @@ -391,7 +373,7 @@ jobs: if: needs.check-cache.outputs.wrappers-macos != 'true' needs: - check-cache - runs-on: macos-12 + runs-on: macos-latest timeout-minutes: 90 steps: - name: Checkout Code @@ -425,7 +407,7 @@ jobs: if: needs.check-cache.outputs.wrappers-catalyst != 'true' needs: - check-cache - runs-on: macos-12 + runs-on: macos-latest timeout-minutes: 90 steps: - name: Checkout Code @@ -468,7 +450,7 @@ jobs: - Device - Simulator fail-fast: false - runs-on: macos-12 + runs-on: macos-latest timeout-minutes: 90 steps: - name: Checkout Code @@ -486,7 +468,7 @@ jobs: if: steps.check-cache.outputs.cache-hit != 'true' uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd with: - xcode-version: '14' + xcode-version: latest-stable - name: Setup Cmake if: steps.check-cache.outputs.cache-hit != 'true' uses: jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be @@ -620,7 +602,7 @@ jobs: if-no-files-found: error uwp: name: UWP - if: needs.check-cache.outputs.wrappers-windows-uwp-Win32 != 'true' || needs.check-cache.outputs.wrappers-windows-uwp-x64 != 'true' || needs.check-cache.outputs.wrappers-windows-uwp-ARM != 'true' || needs.check-cache.outputs.wrappers-windows-uwp-ARM64 != 'true' + if: needs.check-cache.outputs.wrappers-windows-uwp-Win32 != 'true' || needs.check-cache.outputs.wrappers-windows-uwp-x64 != 'true' || needs.check-cache.outputs.wrappers-windows-uwp-ARM64 != 'true' needs: - check-cache strategy: @@ -628,7 +610,6 @@ jobs: arch: - Win32 - x64 - - ARM - ARM64 fail-fast: false runs-on: windows-latest diff --git a/CHANGELOG.md b/CHANGELOG.md index ccaef73213..c8c482eb58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,24 @@ ## vNext (TBD) +### Breaking Changes +* Support for UWP on arm32 has been removed due to the Windows SDK no longer supporting 32-bit ARM. (PR [#3683](https://github.com/realm/realm-dotnet/pull/3683)) +* Support for Xamarin projects has been deprecated. While we still expect the SDK to work, we no longer actively test against Xamarin as it has been end-of-life'd by Microsoft since May. (PR [#3683](https://github.com/realm/realm-dotnet/pull/3683)) +* Support for .NET 6 is deprecated. We still expect everything to work, but we'll retarget the SDK to the latest LTS version (8.0) in a future release. (PR [#3683](https://github.com/realm/realm-dotnet/pull/3683)) + ### Enhancements * None ### Fixed -* None +* Fix crash during client app shutdown when Logger log level is set higher than Info. (Core 14.12.1) +* If File::rw_lock() fails to open a file the exception message does not contain the filename. (Core 14.12.1) +* Fallback to hashed filename will fail if length of basename is between 240 and 250. (Core 14.12.1) +* Having a query with a number of predicates ORed together may result in a crash on some platforms (strict weak ordering check failing on iphone). (Core 14.13.0) ### Compatibility * Realm Studio: 15.0.0 or later. ### Internal -* Using Core x.y.z. +* Using Core 14.13.0. ## 12.4.1 (2024-09-16) @@ -21,7 +29,7 @@ * Realm Studio: 15.0.0 or later. ### Internal -* Using Core x.y.z. +* Using Core 14.12.0. ## 12.4.0 (2024-08-25) diff --git a/Docs/docfx.json b/Docs/docfx.json index 6408a3e5ed..dfc9feb261 100644 --- a/Docs/docfx.json +++ b/Docs/docfx.json @@ -101,7 +101,7 @@ "postProcessors": [], "noLangKeyword": false, "properties": { - "TargetFramework": "net6.0" + "TargetFramework": "net8.0" } } -} \ No newline at end of file +} diff --git a/Realm/Realm.PlatformHelpers/Realm.PlatformHelpers.csproj b/Realm/Realm.PlatformHelpers/Realm.PlatformHelpers.csproj index b04840911b..8a207cd6a6 100644 --- a/Realm/Realm.PlatformHelpers/Realm.PlatformHelpers.csproj +++ b/Realm/Realm.PlatformHelpers/Realm.PlatformHelpers.csproj @@ -10,12 +10,7 @@ netstandard2.0 - $(TargetFrameworks);net7.0-ios;net7.0-android;net7.0-maccatalyst;net7.0-tvos - - - - - $(TargetFrameworks);MonoAndroid5;Xamarin.iOS10;Xamarin.TVOS10;Xamarin.Mac20 + $(TargetFrameworks);net8.0-ios;net8.0-android;net8.0-maccatalyst;net8.0-tvos $(TargetFrameworks);uap10.0.19041; false @@ -44,19 +39,14 @@ - + - + - - - - - \ No newline at end of file diff --git a/Realm/Realm.Unity/Runtime/UWP/ARM.meta b/Realm/Realm.Unity/Runtime/UWP/ARM.meta deleted file mode 100644 index f141578f51..0000000000 --- a/Realm/Realm.Unity/Runtime/UWP/ARM.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8ffde8b0e7a4fd4458fb198c486e2aa0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Realm/Realm.Unity/Runtime/UWP/ARM/realm-wrappers.dll.meta b/Realm/Realm.Unity/Runtime/UWP/ARM/realm-wrappers.dll.meta deleted file mode 100644 index 9fb201bb3f..0000000000 --- a/Realm/Realm.Unity/Runtime/UWP/ARM/realm-wrappers.dll.meta +++ /dev/null @@ -1,75 +0,0 @@ -fileFormatVersion: 2 -guid: fd07ace4f1073f047a0d4f504788e40f -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 1 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - Any: - second: - enabled: 0 - settings: - Exclude Editor: 1 - Exclude Linux64: 1 - Exclude OSXUniversal: 1 - Exclude WebGL: 1 - Exclude Win: 1 - Exclude Win64: 1 - Exclude WindowsStoreApps: 0 - - first: - Editor: Editor - second: - enabled: 0 - settings: - CPU: AnyCPU - DefaultValueInitialized: true - OS: AnyOS - - first: - Standalone: Linux64 - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: OSXUniversal - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: Win - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: Win64 - second: - enabled: 0 - settings: - CPU: None - - first: - WebGL: WebGL - second: - enabled: 0 - settings: {} - - first: - Windows Store Apps: WindowsStoreApps - second: - enabled: 1 - settings: - CPU: ARM - DontProcess: false - PlaceholderPath: - SDK: UWP - ScriptingBackend: AnyScriptingBackend - userData: - assetBundleName: - assetBundleVariant: diff --git a/Realm/Realm/Realm.csproj b/Realm/Realm/Realm.csproj index 93e7caa304..9cceaf76bb 100644 --- a/Realm/Realm/Realm.csproj +++ b/Realm/Realm/Realm.csproj @@ -164,11 +164,6 @@ runtimes\win10-x64\nativeassets\uap10.0 wrappers\WindowsStore\x64\realm-wrappers.dll - - true - runtimes\win10-arm\nativeassets\uap10.0 - wrappers\WindowsStore\ARM\realm-wrappers.dll - true runtimes\win10-arm64\nativeassets\uap10.0 diff --git a/Tests/Benchmarks/PerformanceTests/PerformanceTests.csproj b/Tests/Benchmarks/PerformanceTests/PerformanceTests.csproj index 7de6e5b82f..dd564d4e5f 100644 --- a/Tests/Benchmarks/PerformanceTests/PerformanceTests.csproj +++ b/Tests/Benchmarks/PerformanceTests/PerformanceTests.csproj @@ -1,7 +1,7 @@  - netstandard2.0;net6.0 + netstandard2.0;net8.0 ../../../global.ruleset true 9.0 @@ -33,24 +33,31 @@ - + - + - - + + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest diff --git a/Tests/Realm.Tests/Database/NotificationTests.cs b/Tests/Realm.Tests/Database/NotificationTests.cs index a1f7eee2ca..b64567c784 100644 --- a/Tests/Realm.Tests/Database/NotificationTests.cs +++ b/Tests/Realm.Tests/Database/NotificationTests.cs @@ -2331,7 +2331,7 @@ void OnNotification(IRealmCollection s, ChangeSet? changes) var dog = new Dog(); _realm.Write(() => _realm.Add(dog)); - using (query.SubscribeForNotifications(OnNotification, KeyPathsCollection.Of("Owners"))) + using (query.SubscribeForNotifications(OnNotification, KeyPathsCollection.Of("Owners", "Owners.Name"))) { var owner = new Owner { Name = "Mario", ListOfDogs = { dog } }; _realm.Write(() => _realm.Add(owner)); diff --git a/Tests/Realm.Tests/Realm.Tests.csproj b/Tests/Realm.Tests/Realm.Tests.csproj index dc7fa2dacc..e8082e4bb8 100644 --- a/Tests/Realm.Tests/Realm.Tests.csproj +++ b/Tests/Realm.Tests/Realm.Tests.csproj @@ -6,7 +6,7 @@ in the project file, but the NUnit test adapter doesn't support .NET Standard 2.0, so it should never be first in the list. --> - $(TargetFrameworks);net6.0;net8.0 + $(TargetFrameworks);net8.0 $(TargetFrameworks);net461 $(TargetFrameworks);netstandard2.0 9.0 diff --git a/Tests/Realm.Tests/Sync/AppTests.cs b/Tests/Realm.Tests/Sync/AppTests.cs index 5a538b4d8e..12a2661c16 100644 --- a/Tests/Realm.Tests/Sync/AppTests.cs +++ b/Tests/Realm.Tests/Sync/AppTests.cs @@ -75,12 +75,6 @@ static void AssertBundleId(params string?[] expectedValues) Assert.That(Platform.DeviceInfo.Version, Is.EqualTo(Platform.Unknown), "Version"); AssertBundleId("Realm.Tests"); } - else - { - Assert.That(Platform.DeviceInfo.Name, Is.EqualTo("Apple"), "Name"); - Assert.That(Platform.DeviceInfo.Version, Is.Not.EqualTo(Platform.Unknown), "Version"); - AssertBundleId("Tests.XamarinMac"); - } break; case "iOS": diff --git a/Tests/Realm.Tests/Sync/SynchronizedInstanceTests.cs b/Tests/Realm.Tests/Sync/SynchronizedInstanceTests.cs index df4a678202..4a235ff2cf 100644 --- a/Tests/Realm.Tests/Sync/SynchronizedInstanceTests.cs +++ b/Tests/Realm.Tests/Sync/SynchronizedInstanceTests.cs @@ -802,7 +802,7 @@ public void SyncLogger_WhenLevelChanges_LogsAtNewLevel() logs[level] = new(); } - var regex = new Regex("Connection\\[\\d+] Session\\[\\d+]"); + var regex = new Regex("Connection\\[\\d+(:[0-9a-f]*)?] Session\\[\\d+]"); var logger = RealmLogger.Function((level, _, msg) => { if (regex.IsMatch(msg)) diff --git a/Tests/SourceGenerators/Realm.SourceGenerator.Tests/CSharpSourceGeneratorVerifier.cs b/Tests/SourceGenerators/Realm.SourceGenerator.Tests/CSharpSourceGeneratorVerifier.cs index f0ebd06535..1cf51966f4 100644 --- a/Tests/SourceGenerators/Realm.SourceGenerator.Tests/CSharpSourceGeneratorVerifier.cs +++ b/Tests/SourceGenerators/Realm.SourceGenerator.Tests/CSharpSourceGeneratorVerifier.cs @@ -34,7 +34,7 @@ public class Test : CSharpSourceGeneratorTest { public Test() { - ReferenceAssemblies = ReferenceAssemblies.Net.Net60; + ReferenceAssemblies = ReferenceAssemblies.Net.Net80; TestState.AdditionalReferences.Add(typeof(ObjectId).Assembly.Location); TestState.AdditionalReferences.Add(typeof(Realms.Realm).Assembly.Location); diff --git a/Tests/SourceGenerators/Realm.SourceGenerator.Tests/Realm.SourceGenerator.Tests.csproj b/Tests/SourceGenerators/Realm.SourceGenerator.Tests/Realm.SourceGenerator.Tests.csproj index bab20868de..0fbe65a1d2 100644 --- a/Tests/SourceGenerators/Realm.SourceGenerator.Tests/Realm.SourceGenerator.Tests.csproj +++ b/Tests/SourceGenerators/Realm.SourceGenerator.Tests/Realm.SourceGenerator.Tests.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 true disable false @@ -18,7 +18,7 @@ - + diff --git a/Tests/SourceGenerators/SourceGeneratorAssemblyToProcess/SourceGeneratorAssemblyToProcess.csproj b/Tests/SourceGenerators/SourceGeneratorAssemblyToProcess/SourceGeneratorAssemblyToProcess.csproj index 0dc901ace3..3ed9fc3fdb 100644 --- a/Tests/SourceGenerators/SourceGeneratorAssemblyToProcess/SourceGeneratorAssemblyToProcess.csproj +++ b/Tests/SourceGenerators/SourceGeneratorAssemblyToProcess/SourceGeneratorAssemblyToProcess.csproj @@ -1,18 +1,20 @@  Library - net6.0 + net8.0 disable true Generated enable - + - + @@ -22,4 +24,3 @@ - diff --git a/Tests/Tests.Android/MainActivity.cs b/Tests/Tests.Android/MainActivity.cs deleted file mode 100644 index 0f88f423da..0000000000 --- a/Tests/Tests.Android/MainActivity.cs +++ /dev/null @@ -1,73 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2017 Realm Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////// - -using System; -using System.Threading.Tasks; -using Android.App; -using Android.OS; -using NUnit.Runner; -using NUnit.Runner.Services; -using Realms.Tests.Sync; -using Xamarin.Forms; -using Xamarin.Forms.Platform.Android; - -namespace Realms.Tests.Android -{ - [Activity(Label = "Realm Tests", MainLauncher = true)] - public class MainActivity : FormsApplicationActivity - { - public Action? OnFinished { get; set; } - - protected override void OnCreate(Bundle savedInstanceState) - { - base.OnCreate(savedInstanceState); - - Forms.Init(this, savedInstanceState); - - TestHelpers.TestHttpHandlerFactory = () => new Xamarin.Android.Net.AndroidClientHandler(); - - var nunit = new App(); - nunit.AddTestAssembly(typeof(TestHelpers).Assembly); - var options = new TestOptions - { - LogToOutput = true, - }; - - var arguments = SyncTestHelpers.ExtractBaasSettings(Intent?.GetStringArrayExtra("args") ?? Array.Empty()); - - if (TestHelpers.IsHeadlessRun(arguments)) - { - options.AutoRun = true; - options.CreateXmlResultFile = true; - options.ResultFilePath = TestHelpers.GetResultsPath(arguments); - options.OnCompletedCallback = () => - { - TestHelpers.TransformTestResults(options.ResultFilePath); - Console.WriteLine("Activity finished..."); - OnFinished?.Invoke(Result.Ok); - Finish(); - return Task.CompletedTask; - }; - } - - nunit.Options = options; - - LoadApplication(nunit); - } - } -} diff --git a/Tests/Tests.Android/Properties/AndroidManifest.xml b/Tests/Tests.Android/Properties/AndroidManifest.xml deleted file mode 100644 index 475b5c57db..0000000000 --- a/Tests/Tests.Android/Properties/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Tests/Tests.Android/Properties/AssemblyInfo.cs b/Tests/Tests.Android/Properties/AssemblyInfo.cs deleted file mode 100644 index b2257079db..0000000000 --- a/Tests/Tests.Android/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Android.App; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Tests.Android")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Tests.Android")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: ComVisible(false)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] - -// Add some common permissions, these can be removed if not needed -[assembly: UsesPermission(Android.Manifest.Permission.Internet)] -[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] diff --git a/Tests/Tests.Android/Resources/drawable/Icon.png b/Tests/Tests.Android/Resources/drawable/Icon.png deleted file mode 100644 index 3b03e92633..0000000000 Binary files a/Tests/Tests.Android/Resources/drawable/Icon.png and /dev/null differ diff --git a/Tests/Tests.Android/TestRunnerInstrumentation.cs b/Tests/Tests.Android/TestRunnerInstrumentation.cs deleted file mode 100644 index 8b57a8dddb..0000000000 --- a/Tests/Tests.Android/TestRunnerInstrumentation.cs +++ /dev/null @@ -1,67 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2016 Realm Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////// - -using System; -using System.Collections.Generic; -using Android.App; -using Android.Content; -using Android.OS; -using Android.Runtime; - -namespace Realms.Tests.Android -{ - [Instrumentation(Name = "io.realm.xamarintests.TestRunner")] - public class TestRunnerInstrumentation : Instrumentation - { - private List _args = new() - { - "--headless", - "--result=/storage/emulated/0/Documents/TestResults.Android.xml" - }; - - public TestRunnerInstrumentation(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer) - { - } - - public override void OnCreate(Bundle? arguments) - { - base.OnCreate(arguments); - - var args = arguments?.GetString("args"); - if (args != null) - { - _args.AddRange(TestHelpers.SplitArguments(args)); - } - - Start(); - } - - public override void OnStart() - { - var intent = new Intent(Context!, typeof(MainActivity)); - intent.PutExtra("args", _args.ToArray()); - intent.SetFlags(ActivityFlags.NewTask); - var activity = (MainActivity)StartActivitySync(intent)!; - activity.OnFinished = result => - { - Console.WriteLine("Instrumentation finished..."); - Finish(result, null); - }; - } - } -} diff --git a/Tests/Tests.Android/Tests.Android.csproj b/Tests/Tests.Android/Tests.Android.csproj deleted file mode 100644 index 2ef73289f0..0000000000 --- a/Tests/Tests.Android/Tests.Android.csproj +++ /dev/null @@ -1,140 +0,0 @@ - - - - Debug - AnyCPU - {10725A22-B22F-46AB-B5C4-7BC505A1E74A} - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - {c9e5eea5-ca05-42a1-839b-61506e0a37df} - Library - Tests.Droid - Tests.Android - True - Resources\Resource.designer.cs - Resource - Properties\AndroidManifest.xml - Resources - Assets - v11.0 - true - Xamarin.Android.Net.AndroidClientHandler - - - true - enable - 9.0 - - - true - portable - false - bin\Debug - DEBUG; - prompt - 4 - None - - - true - pdbonly - true - bin\Release - prompt - 4 - true - false - - - true - bin\x64\Debug\ - DEBUG; - portable - x64 - Off - 9.0 - prompt - - - true - bin\x64\Release\ - true - portable - x64 - Off - 9.0 - prompt - - - - - - - - - - - - 4.7.0 - - - - - - - ..\..\dependencies\NUnit.Xamarin.dll - - - - - - - - - - - - - - {78799FCD-BE2E-4ECE-A52E-662846615B58} - Realm.Tests - - - - - - - - {C0DB0E07-4FBC-44D1-8E84-A074497385C6} - Realm - - - {D08C71CE-0F5B-4855-A77C-58062A5ECB78} - Realm.PlatformHelpers - - - lib\x86\librealm-wrappers.so - PreserveNewest - - - lib\x86_64\librealm-wrappers.so - PreserveNewest - - - lib\arm64-v8a\librealm-wrappers.so - PreserveNewest - - - lib\armeabi-v7a\librealm-wrappers.so - PreserveNewest - - - - - - - - - - - - \ No newline at end of file diff --git a/Tests/Tests.UWP/Tests.UWP.csproj b/Tests/Tests.UWP/Tests.UWP.csproj index ff02267e78..aee031848e 100644 --- a/Tests/Tests.UWP/Tests.UWP.csproj +++ b/Tests/Tests.UWP/Tests.UWP.csproj @@ -58,29 +58,6 @@ true true - - true - bin\ARM\Debug\ - DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP - ;2008 - full - ARM - false - prompt - true - - - bin\ARM\Release\ - TRACE;NETFX_CORE;WINDOWS_UWP - true - ;2008 - pdbonly - ARM - false - prompt - true - true - true bin\ARM64\Debug\ diff --git a/Tests/Tests.XUnit/Tests.XUnit.csproj b/Tests/Tests.XUnit/Tests.XUnit.csproj index 888bb42fb9..3f564a461d 100644 --- a/Tests/Tests.XUnit/Tests.XUnit.csproj +++ b/Tests/Tests.XUnit/Tests.XUnit.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 enable enable ../../global.ruleset @@ -30,28 +30,35 @@ - - + + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + - + diff --git a/Tests/Tests.XamarinMac/AppDelegate.cs b/Tests/Tests.XamarinMac/AppDelegate.cs deleted file mode 100644 index f88f4b5885..0000000000 --- a/Tests/Tests.XamarinMac/AppDelegate.cs +++ /dev/null @@ -1,28 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2017 Realm Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////// - -using AppKit; -using Foundation; - -namespace Tests.XamarinMac -{ - [Register("AppDelegate")] - public class AppDelegate : NSApplicationDelegate - { - } -} \ No newline at end of file diff --git a/Tests/Tests.XamarinMac/Assets.xcassets/AppIcon.appiconset/Contents.json b/Tests/Tests.XamarinMac/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index e550a07eb4..0000000000 --- a/Tests/Tests.XamarinMac/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "images": [ - { - "size": "29x29", - "scale": "1x", - "idiom": "iphone" - }, - { - "size": "29x29", - "scale": "2x", - "idiom": "iphone" - }, - { - "size": "29x29", - "scale": "3x", - "idiom": "iphone" - }, - { - "size": "40x40", - "scale": "2x", - "idiom": "iphone" - }, - { - "size": "40x40", - "scale": "3x", - "idiom": "iphone" - }, - { - "size": "57x57", - "scale": "1x", - "idiom": "iphone" - }, - { - "size": "57x57", - "scale": "2x", - "idiom": "iphone" - }, - { - "size": "60x60", - "scale": "2x", - "idiom": "iphone" - }, - { - "size": "60x60", - "scale": "3x", - "idiom": "iphone" - }, - { - "size": "29x29", - "scale": "1x", - "idiom": "ipad" - }, - { - "size": "29x29", - "scale": "2x", - "idiom": "ipad" - }, - { - "size": "40x40", - "scale": "1x", - "idiom": "ipad" - }, - { - "size": "40x40", - "scale": "2x", - "idiom": "ipad" - }, - { - "size": "50x50", - "scale": "1x", - "idiom": "ipad" - }, - { - "size": "50x50", - "scale": "2x", - "idiom": "ipad" - }, - { - "size": "83.5x83.5", - "scale": "2x", - "idiom": "ipad" - }, - { - "size": "72x72", - "scale": "1x", - "idiom": "ipad" - }, - { - "size": "72x72", - "scale": "2x", - "idiom": "ipad" - }, - { - "size": "76x76", - "scale": "1x", - "idiom": "ipad" - }, - { - "size": "76x76", - "scale": "2x", - "idiom": "ipad" - }, - { - "role": "notificationCenter", - "size": "24x24", - "subtype": "38mm", - "scale": "2x", - "idiom": "watch" - }, - { - "role": "notificationCenter", - "size": "27.5x27.5", - "subtype": "42mm", - "scale": "2x", - "idiom": "watch" - }, - { - "role": "companionSettings", - "size": "29x29", - "scale": "2x", - "idiom": "watch" - }, - { - "role": "companionSettings", - "size": "29x29", - "scale": "3x", - "idiom": "watch" - }, - { - "role": "appLauncher", - "size": "40x40", - "subtype": "38mm", - "scale": "2x", - "idiom": "watch" - }, - { - "role": "longLook", - "size": "44x44", - "subtype": "42mm", - "scale": "2x", - "idiom": "watch" - }, - { - "role": "quickLook", - "size": "86x86", - "subtype": "38mm", - "scale": "2x", - "idiom": "watch" - }, - { - "role": "quickLook", - "size": "98x98", - "subtype": "42mm", - "scale": "2x", - "idiom": "watch" - }, - { - "size": "16x16", - "scale": "1x", - "idiom": "mac" - }, - { - "size": "16x16", - "scale": "2x", - "idiom": "mac" - }, - { - "size": "32x32", - "scale": "1x", - "idiom": "mac" - }, - { - "size": "32x32", - "scale": "2x", - "idiom": "mac" - }, - { - "filename": "RealmGenericFilled-128.png", - "size": "128x128", - "scale": "1x", - "idiom": "mac" - }, - { - "filename": "RealmGenericFilled-256.png", - "size": "128x128", - "scale": "2x", - "idiom": "mac" - }, - { - "size": "256x256", - "scale": "1x", - "idiom": "mac" - }, - { - "size": "256x256", - "scale": "2x", - "idiom": "mac" - }, - { - "size": "512x512", - "scale": "1x", - "idiom": "mac" - }, - { - "size": "512x512", - "scale": "2x", - "idiom": "mac" - } - ], - "info": { - "version": 1, - "author": "xcode" - } -} \ No newline at end of file diff --git a/Tests/Tests.XamarinMac/Assets.xcassets/AppIcon.appiconset/RealmGenericFilled-128.png b/Tests/Tests.XamarinMac/Assets.xcassets/AppIcon.appiconset/RealmGenericFilled-128.png deleted file mode 100644 index 6766cbda98..0000000000 Binary files a/Tests/Tests.XamarinMac/Assets.xcassets/AppIcon.appiconset/RealmGenericFilled-128.png and /dev/null differ diff --git a/Tests/Tests.XamarinMac/Assets.xcassets/AppIcon.appiconset/RealmGenericFilled-256.png b/Tests/Tests.XamarinMac/Assets.xcassets/AppIcon.appiconset/RealmGenericFilled-256.png deleted file mode 100644 index baff089b50..0000000000 Binary files a/Tests/Tests.XamarinMac/Assets.xcassets/AppIcon.appiconset/RealmGenericFilled-256.png and /dev/null differ diff --git a/Tests/Tests.XamarinMac/Assets.xcassets/Contents.json b/Tests/Tests.XamarinMac/Assets.xcassets/Contents.json deleted file mode 100644 index 4caf392f92..0000000000 --- a/Tests/Tests.XamarinMac/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Tests/Tests.XamarinMac/Info.plist b/Tests/Tests.XamarinMac/Info.plist deleted file mode 100644 index a28f7fda32..0000000000 --- a/Tests/Tests.XamarinMac/Info.plist +++ /dev/null @@ -1,37 +0,0 @@ - - - - - CFBundleIdentifier - io.realm.xamarinmactests - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSMinimumSystemVersion - 10.12 - CFBundleDevelopmentRegion - en - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - APPL - CFBundleSignature - ???? - NSHumanReadableCopyright - (c) Nikola Irinchev - NSPrincipalClass - NSApplication - NSMainStoryboardFile - Main - XSAppIconAssets - Assets.xcassets/AppIcon.appiconset - CFBundleName - Realm Tests - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - - diff --git a/Tests/Tests.XamarinMac/Main.cs b/Tests/Tests.XamarinMac/Main.cs deleted file mode 100644 index 20681f4dc5..0000000000 --- a/Tests/Tests.XamarinMac/Main.cs +++ /dev/null @@ -1,35 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2017 Realm Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////// - -using AppKit; -using Realms.Tests.Sync; - -namespace Realms.Tests.XamarinMac -{ - internal static class MainClass - { - public static string[] Args { get; private set; } = null!; - - public static void Main(string[] args) - { - NSApplication.Init(); - Args = SyncTestHelpers.ExtractBaasSettings(args); - NSApplication.Main(args); - } - } -} diff --git a/Tests/Tests.XamarinMac/Main.storyboard b/Tests/Tests.XamarinMac/Main.storyboard deleted file mode 100644 index 34fd1f04c1..0000000000 --- a/Tests/Tests.XamarinMac/Main.storyboard +++ /dev/null @@ -1,700 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Default - - - - - - - Left to Right - - - - - - - Right to Left - - - - - - - - - - - Default - - - - - - - Left to Right - - - - - - - Right to Left - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Tests/Tests.XamarinMac/Tests.XamarinMac.csproj b/Tests/Tests.XamarinMac/Tests.XamarinMac.csproj deleted file mode 100644 index 27e5af0d2a..0000000000 --- a/Tests/Tests.XamarinMac/Tests.XamarinMac.csproj +++ /dev/null @@ -1,107 +0,0 @@ - - - - Debug - AnyCPU - {3A6CC342-40D0-4487-9964-DDAEBA628199} - {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Exe - Tests.XamarinMac - Tests.XamarinMac - v2.0 - Xamarin.Mac - Resources - PackageReference - true - enable - 9.0 - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - False - Mac Developer - false - false - false - true - true - NSUrlSessionHandler - SdkOnly - - - None - - - - - true - bin\Release - - - prompt - 4 - False - false - false - true - true - true - SdkOnly - NSUrlSessionHandler - - - None - - - --headless --labels=After - - - - - - - - - - - - - - - - {78799fcd-be2e-4ece-a52e-662846615b58} - Realm.Tests - - - - - - - - - - - ViewController.cs - - - - - - - - {D08C71CE-0F5B-4855-A77C-58062A5ECB78} - Realm.PlatformHelpers - - - Dynamic - False - - - - \ No newline at end of file diff --git a/Tests/Tests.XamarinMac/ViewController.cs b/Tests/Tests.XamarinMac/ViewController.cs deleted file mode 100644 index 55144e1f95..0000000000 --- a/Tests/Tests.XamarinMac/ViewController.cs +++ /dev/null @@ -1,66 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2017 Realm Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////// - -using System; -using System.Linq; -using System.Threading.Tasks; -using AppKit; -using NUnitLite; - -namespace Realms.Tests.XamarinMac -{ - public partial class ViewController : NSViewController - { - public ViewController(IntPtr handle) : base(handle) - { - } - - public override void ViewDidAppear() - { - base.ViewDidAppear(); - - _ = RunTests(); - } - - private async Task RunTests() - { - try - { - StateField.StringValue = "Running tests..."; - - await Task.Delay(50); - - var result = new AutoRun(typeof(TestHelpers).Assembly).Execute(MainClass.Args.Where(a => a != "--headless").ToArray()); - - StateField.StringValue = $"Test run complete. Failed: {result}"; - - if (TestHelpers.IsHeadlessRun(MainClass.Args)) - { - var resultPath = TestHelpers.GetResultsPath(MainClass.Args); - TestHelpers.TransformTestResults(resultPath); - NSApplication.SharedApplication.Terminate(this); - } - } - catch (Exception ex) - { - Console.WriteLine($"An error occurred while running the tests: {ex}"); - NSApplication.SharedApplication.Terminate(this); - } - } - } -} diff --git a/Tests/Tests.XamarinMac/ViewController.designer.cs b/Tests/Tests.XamarinMac/ViewController.designer.cs deleted file mode 100644 index 41b9c358d0..0000000000 --- a/Tests/Tests.XamarinMac/ViewController.designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -// WARNING -// -// This file has been generated automatically by Visual Studio to store outlets and -// actions made in the UI designer. If it is removed, they will be lost. -// Manual changes to this file may not be handled correctly. -// -using Foundation; -using System.CodeDom.Compiler; - -namespace Realms.Tests.XamarinMac -{ - [Register ("ViewController")] - partial class ViewController - { - [Outlet] - AppKit.NSTextField StateField { get; set; } - - void ReleaseDesignerOutlets () - { - if (StateField != null) { - StateField.Dispose (); - StateField = null; - } - } - } -} diff --git a/Tests/Tests.XamarinTVOS/AppDelegate.cs b/Tests/Tests.XamarinTVOS/AppDelegate.cs deleted file mode 100644 index a8453aca09..0000000000 --- a/Tests/Tests.XamarinTVOS/AppDelegate.cs +++ /dev/null @@ -1,36 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2023 Realm Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////// - -using Foundation; -using UIKit; - -namespace Realms.Tests.XamarinTVOS -{ - [Register("AppDelegate")] - public class AppDelegate : UIApplicationDelegate - { - public override UIWindow? Window { get; set; } - - public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) - { - TestHelpers.IsAOTTarget = true; - - return true; - } - } -} \ No newline at end of file diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json deleted file mode 100644 index c4c4d1af65..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "images": [ - { - "idiom": "universal" - }, - { - "scale": "1x", - "idiom": "universal" - }, - { - "scale": "2x", - "idiom": "universal" - }, - { - "scale": "3x", - "idiom": "universal" - }, - { - "idiom": "iphone" - }, - { - "scale": "1x", - "idiom": "iphone" - }, - { - "scale": "2x", - "idiom": "iphone" - }, - { - "subtype": "retina4", - "scale": "2x", - "idiom": "iphone" - }, - { - "scale": "3x", - "idiom": "iphone" - }, - { - "idiom": "ipad" - }, - { - "scale": "1x", - "idiom": "ipad" - }, - { - "scale": "2x", - "idiom": "ipad" - } - ], - "info": { - "version": 1, - "author": "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json deleted file mode 100644 index 5a67467579..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json deleted file mode 100644 index b0e6c69625..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "layers" : [ - { - "filename" : "Front.imagestacklayer" - }, - { - "filename" : "Middle.imagestacklayer" - }, - { - "filename" : "Back.imagestacklayer" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json deleted file mode 100644 index c4c4d1af65..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "images": [ - { - "idiom": "universal" - }, - { - "scale": "1x", - "idiom": "universal" - }, - { - "scale": "2x", - "idiom": "universal" - }, - { - "scale": "3x", - "idiom": "universal" - }, - { - "idiom": "iphone" - }, - { - "scale": "1x", - "idiom": "iphone" - }, - { - "scale": "2x", - "idiom": "iphone" - }, - { - "subtype": "retina4", - "scale": "2x", - "idiom": "iphone" - }, - { - "scale": "3x", - "idiom": "iphone" - }, - { - "idiom": "ipad" - }, - { - "scale": "1x", - "idiom": "ipad" - }, - { - "scale": "2x", - "idiom": "ipad" - } - ], - "info": { - "version": 1, - "author": "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json deleted file mode 100644 index 5a67467579..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json deleted file mode 100644 index c4c4d1af65..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "images": [ - { - "idiom": "universal" - }, - { - "scale": "1x", - "idiom": "universal" - }, - { - "scale": "2x", - "idiom": "universal" - }, - { - "scale": "3x", - "idiom": "universal" - }, - { - "idiom": "iphone" - }, - { - "scale": "1x", - "idiom": "iphone" - }, - { - "scale": "2x", - "idiom": "iphone" - }, - { - "subtype": "retina4", - "scale": "2x", - "idiom": "iphone" - }, - { - "scale": "3x", - "idiom": "iphone" - }, - { - "idiom": "ipad" - }, - { - "scale": "1x", - "idiom": "ipad" - }, - { - "scale": "2x", - "idiom": "ipad" - } - ], - "info": { - "version": 1, - "author": "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json deleted file mode 100644 index 5a67467579..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json deleted file mode 100644 index c4c4d1af65..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "images": [ - { - "idiom": "universal" - }, - { - "scale": "1x", - "idiom": "universal" - }, - { - "scale": "2x", - "idiom": "universal" - }, - { - "scale": "3x", - "idiom": "universal" - }, - { - "idiom": "iphone" - }, - { - "scale": "1x", - "idiom": "iphone" - }, - { - "scale": "2x", - "idiom": "iphone" - }, - { - "subtype": "retina4", - "scale": "2x", - "idiom": "iphone" - }, - { - "scale": "3x", - "idiom": "iphone" - }, - { - "idiom": "ipad" - }, - { - "scale": "1x", - "idiom": "ipad" - }, - { - "scale": "2x", - "idiom": "ipad" - } - ], - "info": { - "version": 1, - "author": "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json deleted file mode 100644 index 5a67467579..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json deleted file mode 100644 index b0e6c69625..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "layers" : [ - { - "filename" : "Front.imagestacklayer" - }, - { - "filename" : "Middle.imagestacklayer" - }, - { - "filename" : "Back.imagestacklayer" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json deleted file mode 100644 index c4c4d1af65..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "images": [ - { - "idiom": "universal" - }, - { - "scale": "1x", - "idiom": "universal" - }, - { - "scale": "2x", - "idiom": "universal" - }, - { - "scale": "3x", - "idiom": "universal" - }, - { - "idiom": "iphone" - }, - { - "scale": "1x", - "idiom": "iphone" - }, - { - "scale": "2x", - "idiom": "iphone" - }, - { - "subtype": "retina4", - "scale": "2x", - "idiom": "iphone" - }, - { - "scale": "3x", - "idiom": "iphone" - }, - { - "idiom": "ipad" - }, - { - "scale": "1x", - "idiom": "ipad" - }, - { - "scale": "2x", - "idiom": "ipad" - } - ], - "info": { - "version": 1, - "author": "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json deleted file mode 100644 index 5a67467579..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json deleted file mode 100644 index c4c4d1af65..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "images": [ - { - "idiom": "universal" - }, - { - "scale": "1x", - "idiom": "universal" - }, - { - "scale": "2x", - "idiom": "universal" - }, - { - "scale": "3x", - "idiom": "universal" - }, - { - "idiom": "iphone" - }, - { - "scale": "1x", - "idiom": "iphone" - }, - { - "scale": "2x", - "idiom": "iphone" - }, - { - "subtype": "retina4", - "scale": "2x", - "idiom": "iphone" - }, - { - "scale": "3x", - "idiom": "iphone" - }, - { - "idiom": "ipad" - }, - { - "scale": "1x", - "idiom": "ipad" - }, - { - "scale": "2x", - "idiom": "ipad" - } - ], - "info": { - "version": 1, - "author": "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json deleted file mode 100644 index 5a67467579..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json deleted file mode 100644 index d6e60bfbab..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "assets" : [ - { - "size" : "1280x768", - "idiom" : "tv", - "filename" : "App Icon - Large.imagestack", - "role" : "primary-app-icon" - }, - { - "size" : "400x240", - "idiom" : "tv", - "filename" : "App Icon - Small.imagestack", - "role" : "primary-app-icon" - }, - { - "size" : "2320x720", - "idiom" : "tv", - "filename" : "Top Shelf Image Wide.imageset", - "role" : "top-shelf-image-wide" - }, - { - "size" : "1920x720", - "idiom" : "tv", - "filename" : "Top Shelf Image.imageset", - "role" : "top-shelf-image" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json deleted file mode 100644 index c4c4d1af65..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "images": [ - { - "idiom": "universal" - }, - { - "scale": "1x", - "idiom": "universal" - }, - { - "scale": "2x", - "idiom": "universal" - }, - { - "scale": "3x", - "idiom": "universal" - }, - { - "idiom": "iphone" - }, - { - "scale": "1x", - "idiom": "iphone" - }, - { - "scale": "2x", - "idiom": "iphone" - }, - { - "subtype": "retina4", - "scale": "2x", - "idiom": "iphone" - }, - { - "scale": "3x", - "idiom": "iphone" - }, - { - "idiom": "ipad" - }, - { - "scale": "1x", - "idiom": "ipad" - }, - { - "scale": "2x", - "idiom": "ipad" - } - ], - "info": { - "version": 1, - "author": "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json deleted file mode 100644 index c4c4d1af65..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "images": [ - { - "idiom": "universal" - }, - { - "scale": "1x", - "idiom": "universal" - }, - { - "scale": "2x", - "idiom": "universal" - }, - { - "scale": "3x", - "idiom": "universal" - }, - { - "idiom": "iphone" - }, - { - "scale": "1x", - "idiom": "iphone" - }, - { - "scale": "2x", - "idiom": "iphone" - }, - { - "subtype": "retina4", - "scale": "2x", - "idiom": "iphone" - }, - { - "scale": "3x", - "idiom": "iphone" - }, - { - "idiom": "ipad" - }, - { - "scale": "1x", - "idiom": "ipad" - }, - { - "scale": "2x", - "idiom": "ipad" - } - ], - "info": { - "version": 1, - "author": "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Assets.xcassets/Contents.json b/Tests/Tests.XamarinTVOS/Assets.xcassets/Contents.json deleted file mode 100644 index 5a67467579..0000000000 --- a/Tests/Tests.XamarinTVOS/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Tests/Tests.XamarinTVOS/Entitlements.plist b/Tests/Tests.XamarinTVOS/Entitlements.plist deleted file mode 100644 index 9ae599370b..0000000000 --- a/Tests/Tests.XamarinTVOS/Entitlements.plist +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Tests/Tests.XamarinTVOS/FodyWeavers.xml b/Tests/Tests.XamarinTVOS/FodyWeavers.xml deleted file mode 100644 index 06ee721613..0000000000 --- a/Tests/Tests.XamarinTVOS/FodyWeavers.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Tests/Tests.XamarinTVOS/Info.plist b/Tests/Tests.XamarinTVOS/Info.plist deleted file mode 100644 index b3d73126f3..0000000000 --- a/Tests/Tests.XamarinTVOS/Info.plist +++ /dev/null @@ -1,30 +0,0 @@ - - - - - CFBundleDisplayName - Tests.XamarinTVOS - CFBundleName - Tests.XamarinTVOS - CFBundleIdentifier - io.realm.Tests-XamarinTVOS - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1.0 - MinimumOSVersion - 11.0 - UIDeviceFamily - - 3 - - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - arm64 - - XSAppIconAssets - Assets.xcassets/App Icon & Top Shelf Image.brandassets - - diff --git a/Tests/Tests.XamarinTVOS/LogCell.cs b/Tests/Tests.XamarinTVOS/LogCell.cs deleted file mode 100644 index d976f42b0a..0000000000 --- a/Tests/Tests.XamarinTVOS/LogCell.cs +++ /dev/null @@ -1,36 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2023 Realm Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////// - -using System; -using Foundation; -using UIKit; - -namespace Realms.Tests.XamarinTVOS -{ - public partial class LogCell : UITableViewCell - { - public LogCell (IntPtr handle) : base (handle) - { - } - - public void SetText(NSAttributedString text) - { - Label.AttributedText = text; - } - } -} diff --git a/Tests/Tests.XamarinTVOS/LogCell.designer.cs b/Tests/Tests.XamarinTVOS/LogCell.designer.cs deleted file mode 100644 index 3ef927f486..0000000000 --- a/Tests/Tests.XamarinTVOS/LogCell.designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -// WARNING -// -// This file has been generated automatically by Visual Studio to store outlets and -// actions made in the UI designer. If it is removed, they will be lost. -// Manual changes to this file may not be handled correctly. -// -using Foundation; -using System.CodeDom.Compiler; - -namespace Realms.Tests.XamarinTVOS -{ - [Register ("LogCell")] - partial class LogCell - { - [Outlet] - UIKit.UILabel Label { get; set; } - - void ReleaseDesignerOutlets () - { - if (Label != null) { - Label.Dispose (); - Label = null; - } - } - } -} diff --git a/Tests/Tests.XamarinTVOS/Main.cs b/Tests/Tests.XamarinTVOS/Main.cs deleted file mode 100644 index 649e23d281..0000000000 --- a/Tests/Tests.XamarinTVOS/Main.cs +++ /dev/null @@ -1,48 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2023 Realm Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////// - -using System; -using System.Linq; -using Foundation; -using UIKit; - -namespace Realms.Tests.XamarinTVOS -{ - public class Application - { - public static string[] Args { get; private set; } = Array.Empty(); - - static void Main(string[] args) - { - if (!args.Any()) - { - // First argument is the executable when launched from the command line. - // For some reason, the command line arguments don't show up as args, so - // we need to extract them from NSProcessInfo. - args = NSProcessInfo.ProcessInfo.Arguments - .Skip(1) - .Select(a => a.Replace("-app-arg=", string.Empty)) - .ToArray(); - } - - Args = Sync.SyncTestHelpers.ExtractBaasSettings(args); - UIApplication.Main(args, null, typeof(AppDelegate)); - } - } -} - diff --git a/Tests/Tests.XamarinTVOS/Main.storyboard b/Tests/Tests.XamarinTVOS/Main.storyboard deleted file mode 100644 index b960048fc4..0000000000 --- a/Tests/Tests.XamarinTVOS/Main.storyboard +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Tests/Tests.XamarinTVOS/Tests.XamarinTVOS.csproj b/Tests/Tests.XamarinTVOS/Tests.XamarinTVOS.csproj deleted file mode 100644 index abdc352085..0000000000 --- a/Tests/Tests.XamarinTVOS/Tests.XamarinTVOS.csproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - Debug - iPhoneSimulator - {80B9697D-0C57-40E8-A71A-F5E81C7BF467} - {06FA79CB-D6CD-4721-BB4B-1BD202089C55};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - {7845f015-8eef-4d78-9b76-cd51413557df} - Exe - Realms.Tests.XamarinTVOS - Tests.XamarinTVOS - Resources - true - NSUrlSessionHandler - PackageReference - automatic - true - enable - 9.0 - - - true - portable - false - bin\iPhoneSimulator\Debug - DEBUG; - prompt - 4 - iPhone Developer - true - true - true - 33827 - None - x86_64 - latestmajor - - - pdbonly - true - bin\iPhone\Release - prompt - 4 - iPhone Developer - true - true - true - Entitlements.plist - SdkOnly - ARM64 - latestmajor - - - pdbonly - true - bin\iPhoneSimulator\Release - prompt - 4 - iPhone Developer - true - None - x86_64 - latestmajor - - - true - portable - false - bin\iPhone\Debug - DEBUG; - prompt - 4 - iPhone Developer - true - true - true - true - true - Entitlements.plist - 26001 - SdkOnly - ARM64 - latestmajor - - - - - - - - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - - ViewController.cs - - - - LogCell.cs - - - - - - - - {78799FCD-BE2E-4ECE-A52E-662846615B58} - Realm.Tests - - - - - {4C9BE4FA-9CB2-4091-B86A-4EC557A78991} - Realm.PlatformHelpers - - - Framework - False - - - Framework - False - - - Realm.dll.config - PreserveNewest - - - - - 3.13.2 - - - - \ No newline at end of file diff --git a/Tests/Tests.XamarinTVOS/ViewController.cs b/Tests/Tests.XamarinTVOS/ViewController.cs deleted file mode 100644 index 3f13dfc6db..0000000000 --- a/Tests/Tests.XamarinTVOS/ViewController.cs +++ /dev/null @@ -1,256 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2023 Realm Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////// - -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Foundation; -using NUnit.Common; -using NUnitLite; -using UIKit; - -namespace Realms.Tests.XamarinTVOS -{ - public partial class ViewController : UIViewController, IUITableViewDataSource - { - private readonly ConcurrentQueue<(string Message, ColorStyle Style, bool NewLine)> _logsQueue = new(); - private readonly List _logs = new(); - - private Task? _testsTask; - private Task? _streamLogsTask; - - public ViewController(IntPtr handle) : base(handle) - { - } - - public override void ViewDidLoad() - { - base.ViewDidLoad(); - LogsTableView.DataSource = this; - LogsTableView.PanGestureRecognizer.AllowedTouchTypes = new[] { new NSNumber((long)UITouchType.Indirect) }; - - _streamLogsTask ??= StreamLogs(); - - if (TestHelpers.IsHeadlessRun(Application.Args)) - { - RunTests(); - } - } - - public override void PressesEnded(NSSet presses, UIPressesEvent evt) - { - if ((presses as IEnumerable).Any(p => p.Type == UIPressType.PlayPause)) - { - RunTests(); - } - else - { - base.PressesEnded(presses, evt); - } - } - - private void RunTests() - { - if (_testsTask?.Status == TaskStatus.Running) - { - return; - } - - ActivityIndicator.Hidden = false; - ActivityIndicator.StartAnimating(); - - _logs.Clear(); - - _testsTask = Task.Run(() => - { - using var reader = new StringReader(string.Empty); - using var writer = new DebugWriter((msg, style, newLine) => _logsQueue.Enqueue((msg, style, newLine))); - - var autorun = new AutoRun(typeof(TestHelpers).Assembly); - - autorun.Execute(Application.Args.Where(a => a != "--headless").ToArray(), writer, reader); - - this.InvokeOnMainThread(() => - { - this.ActivityIndicator.StopAnimating(); - - if (TestHelpers.IsHeadlessRun(Application.Args)) - { - var resultPath = TestHelpers.GetResultsPath(Application.Args); - TestHelpers.TransformTestResults(resultPath); - - UIApplication.SharedApplication.PerformSelector(new ObjCRuntime.Selector("terminateWithSuccess")); - } - }); - }); - } - - private async Task StreamLogs() - { - var currentMsg = new NSMutableAttributedString(); - - while (true) - { - var counter = 0; - - // Don't add more than 50 log messages before we give the UI a chance to catch up - while (_logsQueue.TryDequeue(out var item) && counter++ < 50) - { - currentMsg.Append(GetString(item.Message, item.Style)); - - if (item.NewLine) - { - _logs.Add(currentMsg); - currentMsg = new NSMutableAttributedString(); - } - } - - if (counter > 0) - { - // Since we're doing a lot of updates, we do them without animations, otherwise the UI gets too jumpy - LogsTableView.ReloadData(); - LogsTableView.ScrollToRow(NSIndexPath.FromRowSection(_logs.Count - 1, 0), UITableViewScrollPosition.Bottom, false); - } - - // The delay is pretty arbitrary - it was chosen to get a good balance between the UI updating frequently - // and the log messages being somewhat readable - await Task.Delay(100); - } - } - - private static NSAttributedString GetString(string message, ColorStyle style) - { - nfloat fontSize = 16; - var fontWeight = UIFontWeight.Regular; - var textColor = UIColor.Label; - var underlineStyle = NSUnderlineStyle.None; - - switch (style) - { - case ColorStyle.Header: - fontSize = 22; - break; - case ColorStyle.SubHeader: - fontSize = 20; - break; - case ColorStyle.SectionHeader: - fontSize = 18; - break; - case ColorStyle.Output: - fontWeight = UIFontWeight.Bold; - textColor = UIColor.DarkGray; - break; - case ColorStyle.Default: - case ColorStyle.Value: - break; - case ColorStyle.Label: - underlineStyle = NSUnderlineStyle.Single; - break; - case ColorStyle.Help: - textColor = UIColor.LightGray; - break; - case ColorStyle.Pass: - fontWeight = UIFontWeight.Bold; - textColor = UIColor.Green; - break; - case ColorStyle.Failure: - case ColorStyle.Error: - fontWeight = UIFontWeight.Bold; - textColor = UIColor.Red; - break; - case ColorStyle.Warning: - underlineStyle = NSUnderlineStyle.Thick; - textColor = UIColor.Orange; - break; - } - - var font = UIFont.GetMonospacedSystemFont(fontSize, fontWeight); - return new NSAttributedString(message, font, foregroundColor: textColor, underlineStyle: underlineStyle); - } - - public nint RowsInSection(UITableView tableView, nint section) => _logs.Count; - - public UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) - { - var cell = (LogCell)tableView.DequeueReusableCell("LogCell", indexPath); - var text = _logs[indexPath.Row]; - cell.SetText(text); - return cell; - } - - private class DebugWriter : ExtendedTextWriter - { - // NUnit will hijack Console.Out so we need to capture it before we run the tests - private readonly TextWriter _oldConsole; - private readonly Action _logAction; - - public DebugWriter(Action logAction) - { - _logAction = logAction; - _oldConsole = Console.Out; - } - - public override Encoding Encoding => Encoding.Unicode; - - public override void Write(ColorStyle style, string value) => WriteImpl(value, style); - - public override void WriteLabel(string label, object option) => WriteImpl($"{label}{option}", ColorStyle.Label); - - public override void WriteLabel(string label, object option, ColorStyle valueStyle) => WriteImpl($"{label}{option}", ColorStyle.Default); - - public override void WriteLabelLine(string label, object option) => WriteImpl($"{label}{option}", ColorStyle.Label, newLine: true); - - public override void WriteLabelLine(string label, object option, ColorStyle valueStyle) => WriteImpl($"{label}{option}", valueStyle, newLine: true); - - public override void WriteLine(ColorStyle style, string value) => WriteImpl(value, style, newLine: true); - - private void WriteImpl(string value, ColorStyle style, bool newLine = false) - { - if (Debugger.IsAttached) - { - if (newLine) - { - Debug.WriteLine(value); - } - else - { - Debug.Write(value); - } - } - else - { - if (newLine) - { - _oldConsole.WriteLine(value); - } - else - { - _oldConsole.Write(value); - } - } - - _logAction(value, style, newLine); - } - } - } -} diff --git a/Tests/Tests.XamarinTVOS/ViewController.designer.cs b/Tests/Tests.XamarinTVOS/ViewController.designer.cs deleted file mode 100644 index 7862d8b85a..0000000000 --- a/Tests/Tests.XamarinTVOS/ViewController.designer.cs +++ /dev/null @@ -1,34 +0,0 @@ -// WARNING -// -// This file has been generated automatically by Visual Studio to store outlets and -// actions made in the UI designer. If it is removed, they will be lost. -// Manual changes to this file may not be handled correctly. -// -using Foundation; -using System.CodeDom.Compiler; - -namespace Realms.Tests.XamarinTVOS -{ - [Register ("ViewController")] - partial class ViewController - { - [Outlet] - UIKit.UIActivityIndicatorView ActivityIndicator { get; set; } - - [Outlet] - UIKit.UITableView LogsTableView { get; set; } - - void ReleaseDesignerOutlets () - { - if (ActivityIndicator != null) { - ActivityIndicator.Dispose (); - ActivityIndicator = null; - } - - if (LogsTableView != null) { - LogsTableView.Dispose (); - LogsTableView = null; - } - } - } -} diff --git a/Tests/Tests.iOS/AppDelegate.cs b/Tests/Tests.iOS/AppDelegate.cs deleted file mode 100644 index bf10c2362b..0000000000 --- a/Tests/Tests.iOS/AppDelegate.cs +++ /dev/null @@ -1,76 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2017 Realm Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////// - -using System; -using System.Linq; -using System.Threading.Tasks; -using Foundation; -using NUnit.Runner; -using NUnit.Runner.Services; -using Realms.Tests.Sync; -using UIKit; -using Xamarin.Forms; -using Xamarin.Forms.Platform.iOS; - -namespace Realms.Tests.iOS -{ - [Register("AppDelegate")] - public class AppDelegate : FormsApplicationDelegate - { - public override bool FinishedLaunching(UIApplication uiApplication, NSDictionary launchOptions) - { - Forms.Init(); - - TestHelpers.IsAOTTarget = true; - - var nunit = new App(); - nunit.AddTestAssembly(typeof(TestHelpers).Assembly); - var options = new TestOptions - { - LogToOutput = true - }; - - var arguments = NSProcessInfo.ProcessInfo.Arguments - .Select(a => a.Replace("-app-arg=", string.Empty)) - .ToArray(); - - arguments = SyncTestHelpers.ExtractBaasSettings(arguments); - - if (TestHelpers.IsHeadlessRun(arguments)) - { - options.AutoRun = true; - options.CreateXmlResultFile = true; - options.ResultFilePath = TestHelpers.GetResultsPath(arguments); - options.OnCompletedCallback = () => - { - TestHelpers.TransformTestResults(options.ResultFilePath); - - var selector = new ObjCRuntime.Selector("terminateWithSuccess"); - UIApplication.SharedApplication.PerformSelector(selector, UIApplication.SharedApplication, 0); - - return Task.CompletedTask; - }; - } - - nunit.Options = options; - LoadApplication(nunit); - - return base.FinishedLaunching(uiApplication, launchOptions); - } - } -} diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 4564827fc3..0000000000 --- a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "images": [ - { - "scale": "2x", - "size": "20x20", - "idiom": "iphone", - "filename": "Icon40.png" - }, - { - "scale": "3x", - "size": "20x20", - "idiom": "iphone", - "filename": "Icon60.png" - }, - { - "scale": "2x", - "size": "29x29", - "idiom": "iphone", - "filename": "Icon58.png" - }, - { - "scale": "3x", - "size": "29x29", - "idiom": "iphone", - "filename": "Icon87.png" - }, - { - "scale": "2x", - "size": "40x40", - "idiom": "iphone", - "filename": "Icon80.png" - }, - { - "scale": "3x", - "size": "40x40", - "idiom": "iphone", - "filename": "Icon120.png" - }, - { - "scale": "2x", - "size": "60x60", - "idiom": "iphone", - "filename": "Icon120.png" - }, - { - "scale": "3x", - "size": "60x60", - "idiom": "iphone", - "filename": "Icon180.png" - }, - { - "scale": "1x", - "size": "20x20", - "idiom": "ipad", - "filename": "Icon20.png" - }, - { - "scale": "2x", - "size": "20x20", - "idiom": "ipad", - "filename": "Icon40.png" - }, - { - "scale": "1x", - "size": "29x29", - "idiom": "ipad", - "filename": "Icon29.png" - }, - { - "scale": "2x", - "size": "29x29", - "idiom": "ipad", - "filename": "Icon58.png" - }, - { - "scale": "1x", - "size": "40x40", - "idiom": "ipad", - "filename": "Icon40.png" - }, - { - "scale": "2x", - "size": "40x40", - "idiom": "ipad", - "filename": "Icon80.png" - }, - { - "scale": "1x", - "size": "76x76", - "idiom": "ipad", - "filename": "Icon76.png" - }, - { - "scale": "2x", - "size": "76x76", - "idiom": "ipad", - "filename": "Icon152.png" - }, - { - "scale": "2x", - "size": "83.5x83.5", - "idiom": "ipad", - "filename": "Icon167.png" - }, - { - "scale": "1x", - "size": "1024x1024", - "idiom": "ios-marketing", - "filename": "Icon1024.png" - } - ], - "properties": {}, - "info": { - "version": 1, - "author": "xcode" - } -} \ No newline at end of file diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png deleted file mode 100644 index 9174c989a9..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png deleted file mode 100644 index 9c60a1761d..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png deleted file mode 100644 index 448d6efb57..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png deleted file mode 100644 index 8524768f8d..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png deleted file mode 100644 index 60a64703c0..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png deleted file mode 100644 index 45268a641c..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png deleted file mode 100644 index 6a6c77a8b4..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png deleted file mode 100644 index cc7edcf5cb..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png deleted file mode 100644 index 1ad04f004b..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png deleted file mode 100644 index 2dd52620a8..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png deleted file mode 100644 index b058cae2f4..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png deleted file mode 100644 index 02e47a2611..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png and /dev/null differ diff --git a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png b/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png deleted file mode 100644 index 4954a4bd33..0000000000 Binary files a/Tests/Tests.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png and /dev/null differ diff --git a/Tests/Tests.iOS/Entitlements.plist b/Tests/Tests.iOS/Entitlements.plist deleted file mode 100644 index e9a3005f78..0000000000 --- a/Tests/Tests.iOS/Entitlements.plist +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Tests/Tests.iOS/Info.plist b/Tests/Tests.iOS/Info.plist deleted file mode 100644 index cd01b2e1be..0000000000 --- a/Tests/Tests.iOS/Info.plist +++ /dev/null @@ -1,43 +0,0 @@ - - - - - UIDeviceFamily - - 1 - 2 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - MinimumOSVersion - 8.0 - CFBundleDisplayName - Tests - CFBundleIdentifier - io.realm.dotnettests - CFBundleVersion - 1.0 - UILaunchStoryboardName - LaunchScreen - CFBundleName - Tests - XSAppIconAssets - Assets.xcassets/AppIcon.appiconset - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - - diff --git a/Tests/Tests.iOS/Main.cs b/Tests/Tests.iOS/Main.cs deleted file mode 100644 index b47e79bcd8..0000000000 --- a/Tests/Tests.iOS/Main.cs +++ /dev/null @@ -1,30 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2019 Realm Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////// - -using UIKit; - -namespace Realms.Tests.iOS -{ - public class Application - { - static void Main(string[] args) - { - UIApplication.Main(args, null, typeof(AppDelegate)); - } - } -} diff --git a/Tests/Tests.iOS/Properties/AssemblyInfo.cs b/Tests/Tests.iOS/Properties/AssemblyInfo.cs deleted file mode 100644 index 48185c4e8a..0000000000 --- a/Tests/Tests.iOS/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Tests.iOS")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Tests.iOS")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tests/Tests.iOS/Resources/Default-568h@2x.png b/Tests/Tests.iOS/Resources/Default-568h@2x.png deleted file mode 100644 index 26c6461e50..0000000000 Binary files a/Tests/Tests.iOS/Resources/Default-568h@2x.png and /dev/null differ diff --git a/Tests/Tests.iOS/Resources/Default-Portrait.png b/Tests/Tests.iOS/Resources/Default-Portrait.png deleted file mode 100644 index 5d0d1ab4c6..0000000000 Binary files a/Tests/Tests.iOS/Resources/Default-Portrait.png and /dev/null differ diff --git a/Tests/Tests.iOS/Resources/Default-Portrait@2x.png b/Tests/Tests.iOS/Resources/Default-Portrait@2x.png deleted file mode 100644 index 0ee2688e8f..0000000000 Binary files a/Tests/Tests.iOS/Resources/Default-Portrait@2x.png and /dev/null differ diff --git a/Tests/Tests.iOS/Resources/Default.png b/Tests/Tests.iOS/Resources/Default.png deleted file mode 100644 index b74643c0aa..0000000000 Binary files a/Tests/Tests.iOS/Resources/Default.png and /dev/null differ diff --git a/Tests/Tests.iOS/Resources/Default@2x.png b/Tests/Tests.iOS/Resources/Default@2x.png deleted file mode 100644 index dbd6bd3e86..0000000000 Binary files a/Tests/Tests.iOS/Resources/Default@2x.png and /dev/null differ diff --git a/Tests/Tests.iOS/Resources/LaunchScreen.storyboard b/Tests/Tests.iOS/Resources/LaunchScreen.storyboard deleted file mode 100644 index c6421b20c0..0000000000 --- a/Tests/Tests.iOS/Resources/LaunchScreen.storyboard +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Tests/Tests.iOS/Tests.iOS.csproj b/Tests/Tests.iOS/Tests.iOS.csproj deleted file mode 100644 index 840776ee44..0000000000 --- a/Tests/Tests.iOS/Tests.iOS.csproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - Debug - iPhoneSimulator - 8.0.30703 - 2.0 - {F67B1BEB-4157-45A2-B310-4AA8F99C750E} - {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - {6143fdea-f3c2-4a09-aafa-6e230626515e} - Exe - Tests.iOS - Resources - Tests.iOS - true - NSUrlSessionHandler - PackageReference - true - enable - 9.0 - - - true - full - false - bin\iPhoneSimulator\Debug - DEBUG - prompt - 4 - false - x86_64 - SdkOnly - true - --nosymbolstrip --linkskip=nunit.framework --linkskip=Realm.Tests --nolinkaway --linkskip=Newtonsoft.Json - - - none - true - bin\iPhoneSimulator\Release - prompt - 4 - Full - x86_64 - false - --linkskip=nunit.framework --linkskip=Realm.Tests --nolinkaway --linkskip=Newtonsoft.Json - - - true - full - false - bin\iPhone\Debug - DEBUG - prompt - 4 - false - ARM64 - iPhone Developer - true - Entitlements.plist - --linkskip=nunit.runner.iOS --linkskip=nunit.framework --nolinkaway --linkskip=Newtonsoft.Json - SdkOnly - - - none - true - bin\iPhone\Release - prompt - 4 - ARM64 - false - iPhone Developer - Entitlements.plist - --nosymbolstrip --linkskip=nunit.runner.iOS --linkskip=nunit.framework --nolinkaway --linkskip=Newtonsoft.Json - Full - - - - - - - - - - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - - ..\..\dependencies\NUnit.Xamarin.dll - - - - - {78799fcd-be2e-4ece-a52e-662846615b58} - Realm.Tests - - - - - Framework - False - - - Framework - False - - - Realm.dll.config - PreserveNewest - - - {C0DB0E07-4FBC-44D1-8E84-A074497385C6} - Realm - - - {D08C71CE-0F5B-4855-A77C-58062A5ECB78} - Realm.PlatformHelpers - - - - \ No newline at end of file diff --git a/Tests/Weaver/AnalyticsAssembly/AnalyticsAssembly.csproj b/Tests/Weaver/AnalyticsAssembly/AnalyticsAssembly.csproj index d9d20a35ed..00440b1327 100644 --- a/Tests/Weaver/AnalyticsAssembly/AnalyticsAssembly.csproj +++ b/Tests/Weaver/AnalyticsAssembly/AnalyticsAssembly.csproj @@ -1,7 +1,7 @@  - net472;netcoreapp3.1;net6.0 + net472;netcoreapp3.1;net8.0 9.0 true Generated diff --git a/Tests/Weaver/Realm.Fody.Tests/Realm.Fody.Tests.csproj b/Tests/Weaver/Realm.Fody.Tests/Realm.Fody.Tests.csproj index a25561b319..7a3f1bddc4 100644 --- a/Tests/Weaver/Realm.Fody.Tests/Realm.Fody.Tests.csproj +++ b/Tests/Weaver/Realm.Fody.Tests/Realm.Fody.Tests.csproj @@ -1,7 +1,7 @@  - net472;net6.0 + net472;net8.0 9.0 true true diff --git a/Tools/SetupUnityPackage/CommandLineOptions/RealmOptions.cs b/Tools/SetupUnityPackage/CommandLineOptions/RealmOptions.cs index d9ed3f33b2..c7a715726f 100644 --- a/Tools/SetupUnityPackage/CommandLineOptions/RealmOptions.cs +++ b/Tools/SetupUnityPackage/CommandLineOptions/RealmOptions.cs @@ -87,7 +87,6 @@ internal class RealmOptions : OptionsBase { "runtimes/android-x86/native/librealm-wrappers.so", "Runtime/Android/x86/librealm-wrappers.so" }, { "runtimes/win-x64/native/realm-wrappers.dll", "Runtime/Windows/x86_64/realm-wrappers.dll" }, { "runtimes/win-x86/native/realm-wrappers.dll", "Runtime/Windows/x86/realm-wrappers.dll" }, - { "runtimes/win10-arm/nativeassets/uap10.0/realm-wrappers.dll", "Runtime/UWP/ARM/realm-wrappers.dll" }, { "runtimes/win10-arm64/nativeassets/uap10.0/realm-wrappers.dll", "Runtime/UWP/ARM64/realm-wrappers.dll" }, { "runtimes/win10-x64/nativeassets/uap10.0/realm-wrappers.dll", "Runtime/UWP/x86_64/realm-wrappers.dll" }, { "runtimes/win10-x86/nativeassets/uap10.0/realm-wrappers.dll", "Runtime/UWP/x86/realm-wrappers.dll" }, diff --git a/Tools/SetupUnityPackage/SetupUnityPackage.csproj b/Tools/SetupUnityPackage/SetupUnityPackage.csproj index 715febe63f..f236423247 100644 --- a/Tools/SetupUnityPackage/SetupUnityPackage.csproj +++ b/Tools/SetupUnityPackage/SetupUnityPackage.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 ../../global.ruleset true 1701;1702;NU1701 @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/wrappers/CMakeLists.txt b/wrappers/CMakeLists.txt index fd2905432e..45d210d6a8 100644 --- a/wrappers/CMakeLists.txt +++ b/wrappers/CMakeLists.txt @@ -17,6 +17,8 @@ if(ANDROID) else() STRING(REGEX REPLACE "-O[0-9z]" "-Oz" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) endif() + + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,max-page-size=16384") endif() option(REALM_DOTNET_BUILD_CORE_FROM_SOURCE "Build Realm Core from source, as opposed to downloading prebuilt binaries" ON) diff --git a/wrappers/realm-core b/wrappers/realm-core index c2552e1d36..85eeca4165 160000 --- a/wrappers/realm-core +++ b/wrappers/realm-core @@ -1 +1 @@ -Subproject commit c2552e1d36867cb42b28130e894a81fc17081062 +Subproject commit 85eeca41654cc9070ad81a21a4b1d153ad467c33