{
  "_class" : "hudson.tasks.junit.TestResult",
  "testActions" : [
    
  ],
  "duration" : 37.519993,
  "empty" : False,
  "failCount" : 0,
  "passCount" : 335,
  "skipCount" : 2,
  "suites" : [
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.rest.InsertDefaultSiteCallbackTest",
          "duration" : 0.307,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenDatabaseCreated_thenWhenOpened_itShouldBloodyWellBeThereFfs",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : "16:42:46,068 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.6\u000a16:42:46,069 |-INFO in ch.qos.logback.classic.util.ContextInitializer@58ffcbd7 - No custom configurators were discovered as a service.\u000a16:42:46,069 |-INFO in ch.qos.logback.classic.util.ContextInitializer@58ffcbd7 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator\u000a16:42:46,070 |-INFO in ch.qos.logback.classic.util.ContextInitializer@58ffcbd7 - Constructed \u000a...[truncated 3442 chars]...\u000alevel of logger [io.netty] to INFO\u000a16:42:46,152 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@3c9bfddc - End of configuration.\u000a16:42:46,152 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@1a9c38eb - Registering current configuration as safe fallback point\u000a16:42:46,152 |-INFO in ch.qos.logback.classic.util.ContextInitializer@58ffcbd7 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 77 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY\u000a\u000a"
        }
      ],
      "duration" : 0.307,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.lib.rest.InsertDefaultSiteCallbackTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "16:42:46,068 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.6\u000a16:42:46,069 |-INFO in ch.qos.logback.classic.util.ContextInitializer@58ffcbd7 - No custom configurators were discovered as a service.\u000a16:42:46,069 |-INFO in ch.qos.logback.classic.util.ContextInitializer@58ffcbd7 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator\u000a16:42:46,070 |-INFO in ch.qos.logback.classic.util.ContextInitializer@58ffcbd7 - Constructed \u000a...[truncated 3442 chars]...\u000alevel of logger [io.netty] to INFO\u000a16:42:46,152 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@3c9bfddc - End of configuration.\u000a16:42:46,152 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@1a9c38eb - Registering current configuration as safe fallback point\u000a16:42:46,152 |-INFO in ch.qos.logback.classic.util.ContextInitializer@58ffcbd7 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 77 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY\u000a\u000a",
      "timestamp" : "2025-06-30T14:42:46.027Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.rest.PersonAuthRegisterRouteTest",
          "duration" : 1.028,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidCredentials_whenLoginCalled_thenShouldReturnAccount",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] : created tables\u000aJun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] database build complete\u000aJun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: table\u000a...[truncated 34289 chars]...\u000a30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [prepareAndUseStatementAsync - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] - prepare \"\u000a         SELECT PersonAuth2.* FROM PersonAuth2 where PersonAuth2.pauthUid = ?\u000a    \"\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] - useNewConnectionAsyncInternal connection #4 : end transaction #4\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.rest.PersonAuthRegisterRouteTest",
          "duration" : 0.135,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenInvalidCredentials_whenLoginCalled_thenShouldRespondForbidden",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] : created tables\u000aJun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] database build complete\u000aJun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: table\u000a...[truncated 34289 chars]...\u000a30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [prepareAndUseStatementAsync - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] - prepare \"\u000a         SELECT PersonAuth2.* FROM PersonAuth2 where PersonAuth2.pauthUid = ?\u000a    \"\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] - useNewConnectionAsyncInternal connection #4 : end transaction #4\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.rest.PersonAuthRegisterRouteTest",
          "duration" : 0.097,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenRegisterPersonWithAuth_whenRegisterCalled_thenShouldGenerateAuth",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] : created tables\u000aJun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] database build complete\u000aJun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: table\u000a...[truncated 34289 chars]...\u000a30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [prepareAndUseStatementAsync - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] - prepare \"\u000a         SELECT PersonAuth2.* FROM PersonAuth2 where PersonAuth2.pauthUid = ?\u000a    \"\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] - useNewConnectionAsyncInternal connection #4 : end transaction #4\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 1.26,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.lib.rest.PersonAuthRegisterRouteTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] : created tables\u000aJun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] database build complete\u000aJun 30, 2025 4:42:46 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: table\u000a...[truncated 34289 chars]...\u000a30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [prepareAndUseStatementAsync - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] - prepare \"\u000a         SELECT PersonAuth2.* FROM PersonAuth2 where PersonAuth2.pauthUid = ?\u000a    \"\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] - useNewConnectionAsyncInternal connection #4 : end transaction #4\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:46.337Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.rest.TestContentEntryVersionRoute",
          "duration" : 0.016,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEntryNotCached_whenRequested_thenShouldReturn404",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] : created tables\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] : created tables\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: tables invalidated: RequestedEntry\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.rest.TestContentEntryVersionRoute",
          "duration" : 0.054,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEntryIsCached_whenRequested_thenResponseShouldMatch",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] : created tables\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] : created tables\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: tables invalidated: RequestedEntry\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.07,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.lib.rest.TestContentEntryVersionRoute",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] : created tables\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] : created tables\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: tables invalidated: RequestedEntry\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:47.599Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.rest.TestSiteRoute",
          "duration" : 0.023,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenAvailableWorkSpace_whenRequested_thenShouldReturnWorkSpaceObject",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] database build complete\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: tables invalidated: Person, SyncNode, Site, PersonAuth2, SystemPermission\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: tables invalidated: SyncNode\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: tables invalidated: Site\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.023,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.lib.rest.TestSiteRoute",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aINFO: [INFO] DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/UmAppDatabase.sqlite] database build complete\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: tables invalidated: Person, SyncNode, Site, PersonAuth2, SystemPermission\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: tables invalidated: SyncNode\u000aJun 30, 2025 4:42:47 PM io.github.aakira.napier.DebugAntilog performLog\u000aFINEST: [VERBOSE] DoorLog - InvalidationTracker: tables invalidated: Site\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:47.670Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.rest.VerifySignInWithPasskeyTest",
          "duration" : 0.156,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "verifyPasskeySignInWithValidData",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.rest.VerifySignInWithPasskeyTest",
          "duration" : 0.008,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "verifyPasskeySignInWithWrongSignature",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.rest.VerifySignInWithPasskeyTest",
          "duration" : 0.006,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "verifyPasskeySignInWithWrongChallenge",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.17,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.lib.rest.VerifySignInWithPasskeyTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:47.694Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.jsmodules.JsIntlWrapperTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidLocale_whenFormatCalled_thenShouldFormatDate[js, browser, ChromeHeadless138.0.0.0, Linuxx86_64]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : "[log] Now: 6/30/2025\u000a"
        }
      ],
      "duration" : 0.001,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.jsmodules.JsIntlWrapperTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "[log] Now: 6/30/2025\u000a",
      "timestamp" : "2025-06-30T14:42:26.960Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.util.WebEndpointResolverTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenApiUrlInSearchParams_whenEndpointResolved_thenShouldReturnSearchParam[js, browser, ChromeHeadless138.0.0.0, Linuxx86_64]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.util.WebEndpointResolverTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenRootHref_whenEndpointIsResolved_thenShouldReturnHref[js, browser, ChromeHeadless138.0.0.0, Linuxx86_64]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.util.WebEndpointResolverTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenHrefWithDevelopmentLink_whenEndpointIsResolved_thenShouldReturnHref[js, browser, ChromeHeadless138.0.0.0, Linuxx86_64]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.util.WebEndpointResolverTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenHrefWithProductionLink_whenEndpointIsResolved_thenShouldReturnHref[js, browser, ChromeHeadless138.0.0.0, Linuxx86_64]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.001,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.util.WebEndpointResolverTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:26.961Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.navigation.SavedStateHandle2Test",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStateSavedToHistory_whenNewHandleCreated_thenValueShouldBeRestored[js, browser, ChromeHeadless138.0.0.0, Linuxx86_64]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.001,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.navigation.SavedStateHandle2Test",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:41:07.684Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.account.AuthManagerTest",
          "duration" : 1.295,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenAuthSet_whenAuthenticatedWithWrongPassword_thenShouldReject[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : "16:42:51,676 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.6\u000a16:42:51,676 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - No custom configurators were discovered as a service.\u000a16:42:51,676 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator\u000a16:42:51,677 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - Constructed \u000a...[truncated 3718 chars]...\u000alevel of logger [io.netty] to INFO\u000a16:42:51,780 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@277b8fa4 - End of configuration.\u000a16:42:51,781 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@6cd64ee8 - Registering current configuration as safe fallback point\u000a16:42:51,781 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 97 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY\u000a\u000a"
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.account.AuthManagerTest",
          "duration" : 0.139,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenAuthSet_whenAuthenticatedWithValidPassword_thenShouldAccept[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : "16:42:51,676 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.6\u000a16:42:51,676 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - No custom configurators were discovered as a service.\u000a16:42:51,676 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator\u000a16:42:51,677 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - Constructed \u000a...[truncated 3718 chars]...\u000alevel of logger [io.netty] to INFO\u000a16:42:51,780 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@277b8fa4 - End of configuration.\u000a16:42:51,781 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@6cd64ee8 - Registering current configuration as safe fallback point\u000a16:42:51,781 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 97 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY\u000a\u000a"
        }
      ],
      "duration" : 1.434,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.account.AuthManagerTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "16:42:51,676 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.6\u000a16:42:51,676 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - No custom configurators were discovered as a service.\u000a16:42:51,676 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator\u000a16:42:51,677 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - Constructed \u000a...[truncated 3718 chars]...\u000alevel of logger [io.netty] to INFO\u000a16:42:51,780 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@277b8fa4 - End of configuration.\u000a16:42:51,781 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@6cd64ee8 - Registering current configuration as safe fallback point\u000a16:42:51,781 |-INFO in ch.qos.logback.classic.util.ContextInitializer@18d910b3 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 97 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY\u000a\u000a",
      "timestamp" : "2025-06-30T14:42:51.084Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.account.StringEncryptTest",
          "duration" : 0.015,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenSameParams_differentSecret_thenShouldNotMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.account.StringEncryptTest",
          "duration" : 0.021,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenSameParams_whenEncrypted_thenShoudlMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.036,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.account.StringEncryptTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:52.520Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.cachestoragepath.GetStoragePathForUrlUseCaseCommonJvmTest",
          "duration" : 0.011,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenRequestForUrl_whenInvoked_thenWillProvideValidPath[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.011,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.cachestoragepath.GetStoragePathForUrlUseCaseCommonJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:52.558Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.connectivitymonitor.ConnectivityMonitorJvmTest",
          "duration" : 0.008,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenSocketAvailable_whenInitialized_thenWillEmitConnected[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.connectivitymonitor.ConnectivityMonitorJvmTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenSocketNotAvailable_whenInitialized_thenWillEmitDisconnected[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.connectivitymonitor.ConnectivityMonitorJvmTest",
          "duration" : 0.301,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenSocketAVailableThenNot_whenInitialized_thenWillEmitConnectedThenDisconnected[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.31,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.connectivitymonitor.ConnectivityMonitorJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:52.570Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.epub.EpubContentImporterCommonJvmTest",
          "duration" : 0.282,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidEpubLink_whenExtractMetadataAndProcessJobComplete_thenDataShouldBeDownloaded[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.epub.EpubContentImporterCommonJvmTest",
          "duration" : 0.045,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidEpubFormatFile_whenExtractEntryMetaDataFromFile_thenDataShouldMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.epub.EpubContentImporterCommonJvmTest",
          "duration" : 0.018,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEpubWithoutOpf_whenExtractMetadataCalled_thenShouldThrowInvalidContentException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.epub.EpubContentImporterCommonJvmTest",
          "duration" : 0.019,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEpubWithoutNav_whenExtractMetadataCalled_thenShouldThrowInvalidContentException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.epub.EpubContentImporterCommonJvmTest",
          "duration" : 0.027,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEpubWithManifestItemsMissing_whenExtractMetadataCalled_thenShouldThrowInvalidContentException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.392,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.contentformats.epub.EpubContentImporterCommonJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:52.883Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.epub.nav.NavigationDocumentTest",
          "duration" : 0.002,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNavigationDocumentWhereNavIsNotDirectChild_whenParsed_thenMatchesExpectedValues[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.epub.nav.NavigationDocumentTest",
          "duration" : 0.002,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidNavigationDocument_whenParsed_thenMatchesExpectedVals[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.004,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.contentformats.epub.nav.NavigationDocumentTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:53.276Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.epub.ncx.NcxDocumentTest",
          "duration" : 0.158,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidNcxDoc_whenParsed_thenShouldProvideExpectedValues[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.158,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.contentformats.epub.ncx.NcxDocumentTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:53.281Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.epub.ocf.TestContainerParse",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidContainer_whenParsed_thenMatches[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.001,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.contentformats.epub.ocf.TestContainerParse",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:53.439Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.epub.opf.TestPackageParse",
          "duration" : 0.009,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidPackageDocThenShouldParse[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.009,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.contentformats.epub.opf.TestPackageParse",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:53.441Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.h5p.H5PContentImporterTest",
          "duration" : 0.17,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidH5pFile_whenStoreInCacheCalled_thenShouldStore[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.h5p.H5PContentImporterTest",
          "duration" : 0.018,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidH5pFile_whenExtractMetadataCalled_thenMetadataShouldMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.h5p.H5PContentImporterTest",
          "duration" : 0.015,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileNotH5pFile_whenExtractMetadataCalled_thenShouldReturnNull[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.h5p.H5PContentImporterTest",
          "duration" : 0.015,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileWithH5pExtensionNotValidH5p_whenExtractMetadataCalled_thenShouldThrowInvalidContentException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.219,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.contentformats.h5p.H5PContentImporterTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:53.451Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.media.VideoContentImporterJvmTest",
          "duration" : 0.06,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidVideo_whenExtractMetadataCalled_thenShouldReturnEntry[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.media.VideoContentImporterJvmTest",
          "duration" : 0.015,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNonVideoFile_whenExtractMetadataCalled_thenWillReturnNull[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.media.VideoContentImporterJvmTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidVideoFile_whenAddToCacheCalled_thenWillAddToCache[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.media.VideoContentImporterJvmTest",
          "duration" : 0.025,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenInvalidFileWithRecognizedExtension_whenExtractMetadataCalled_thenWillThrowInvalidContentException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.124,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.contentformats.media.VideoContentImporterJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:53.671Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.opds.TestOpds",
          "duration" : 0.003,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidOpds_whenLoaded_thenShouldHavePropertiesLoaded[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.003,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.contentformats.opds.TestOpds",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:53.795Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.pdf.PdfContentImporterJvmTest",
          "duration" : 0.113,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidPdfWithUrl_whenImported_thenDataShouldMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.pdf.PdfContentImporterJvmTest",
          "duration" : 0.145,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidPdf_whenExtractMetadataCalled_thenWillReturnMetadataEntry[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.pdf.PdfContentImporterJvmTest",
          "duration" : 0.029,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileNotPdf_whenExtractMetadataCalled_thenWillReturnNull[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.pdf.PdfContentImporterJvmTest",
          "duration" : 0.111,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidPdf_whenAddedToCached_thenDataShouldMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.pdf.PdfContentImporterJvmTest",
          "duration" : 0.017,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileShouldBePdf_whenDataIsNotValid_thenWillThrowInvalidContentException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.416,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.contentformats.pdf.PdfContentImporterJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:53.799Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.xapi.XapiZipContentImporterTest",
          "duration" : 0.035,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidTinCanFormatFile_whenGetContentEntryCalled_thenShouldReadMetaData[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Exception in thread \"UI Thread @coroutine#244\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 2043 chars]...\u000aer.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(281), \"coroutine#281\":StandaloneCoroutine{Cancelling}@74dd2444, Dispatchers.Main]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.xapi.XapiZipContentImporterTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidXapiLink_whenExtractMetadataAndProcessJobComplete_thenDataShouldBeDownloaded[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Exception in thread \"UI Thread @coroutine#244\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 2043 chars]...\u000aer.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(281), \"coroutine#281\":StandaloneCoroutine{Cancelling}@74dd2444, Dispatchers.Main]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.xapi.XapiZipContentImporterTest",
          "duration" : 0.016,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileNotTincanZip_whenExtractMetadataCalled_thenWillReturnNull[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Exception in thread \"UI Thread @coroutine#244\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 2043 chars]...\u000aer.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(281), \"coroutine#281\":StandaloneCoroutine{Cancelling}@74dd2444, Dispatchers.Main]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.contentformats.xapi.XapiZipContentImporterTest",
          "duration" : 0.018,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenInvalidTinCanXmlFile_whenExtractMetadataCalled_thenShouldThrowInvalidContentException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Exception in thread \"UI Thread @coroutine#244\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 2043 chars]...\u000aer.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(281), \"coroutine#281\":StandaloneCoroutine{Cancelling}@74dd2444, Dispatchers.Main]\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.093,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.contentformats.xapi.XapiZipContentImporterTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Exception in thread \"UI Thread @coroutine#244\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 2043 chars]...\u000aer.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(281), \"coroutine#281\":StandaloneCoroutine{Cancelling}@74dd2444, Dispatchers.Main]\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:54.216Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.assignment.submitassignment.SubmitAssignmentUseCaseTest",
          "duration" : 0.076,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidAssignment_whenSubmissionAlreadyMadeAndPolicyIsAllowMultipleSubmissions_thenWillSaveSubmission[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Exception in thread \"UI Thread @coroutine#297\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 521 chars]...\u000aler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(297), \"coroutine#297\":StandaloneCoroutine{Cancelling}@8438cda, Dispatchers.Main]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.assignment.submitassignment.SubmitAssignmentUseCaseTest",
          "duration" : 0.043,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidAssignment_whenSubmissionAlreadyMadeAndPolicyIsSubmitAllAtOnce_thenWillThrowAlreadySubmittedException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Exception in thread \"UI Thread @coroutine#297\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 521 chars]...\u000aler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(297), \"coroutine#297\":StandaloneCoroutine{Cancelling}@8438cda, Dispatchers.Main]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.assignment.submitassignment.SubmitAssignmentUseCaseTest",
          "duration" : 0.027,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidAssignment_whenDeadlineAndGracePeriodPassed_thenWillThrowDeadlinePassedException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Exception in thread \"UI Thread @coroutine#297\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 521 chars]...\u000aler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(297), \"coroutine#297\":StandaloneCoroutine{Cancelling}@8438cda, Dispatchers.Main]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.assignment.submitassignment.SubmitAssignmentUseCaseTest",
          "duration" : 0.033,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidAssignment_whenNoSubmissionMadeYet_thenWillSaveSubmission[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Exception in thread \"UI Thread @coroutine#297\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 521 chars]...\u000aler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(297), \"coroutine#297\":StandaloneCoroutine{Cancelling}@8438cda, Dispatchers.Main]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.assignment.submitassignment.SubmitAssignmentUseCaseTest",
          "duration" : 0.026,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidAssignment_whenTextTooLong_thenWillThrowTextTooLongException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Exception in thread \"UI Thread @coroutine#297\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 521 chars]...\u000aler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(297), \"coroutine#297\":StandaloneCoroutine{Cancelling}@8438cda, Dispatchers.Main]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.assignment.submitassignment.SubmitAssignmentUseCaseTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidAssignment_whenAccountPersonUidIsNotSubmitter_thenWillThrowNotSubmitterException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Exception in thread \"UI Thread @coroutine#297\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 521 chars]...\u000aler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(297), \"coroutine#297\":StandaloneCoroutine{Cancelling}@8438cda, Dispatchers.Main]\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.229,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.assignment.submitassignment.SubmitAssignmentUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Exception in thread \"UI Thread @coroutine#297\" java.lang.NullPointerException: Cannot invoke \"java.sql.Connection.setAutoCommit(boolean)\" because \"connection\" is null\u000a\u0009at com.zaxxer.hikari.pool.PoolBase.resetConnectionState(PoolBase.java:206)\u000a\u0009at com.zaxxer.hikari.pool.PoolEntry.resetConnectionState(PoolEntry.java:108)\u000a\u0009at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:236)\u000a\u0009at com.ustadmobile.door.room.RoomDatabaseJdbcImplHelperCommon.useNewConnectionAsyncInternal(RoomDatabas\u000a...[truncated 521 chars]...\u000aler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u0009Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(297), \"coroutine#297\":StandaloneCoroutine{Cancelling}@8438cda, Dispatchers.Main]\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:54.312Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.download.BlobDownloadClientUseCaseCommonJvmTest",
          "duration" : 0.136,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenListOfBlobsToDownload_whenInvoked_thenShouldRequestAll[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST BlobDownloadClientUseCaseCommonJvm$downloadItemsFromChannelProcessor$invokeSuspend - BlobDownloadClientUseCaseCommonJvm: #0 http://localhost:59341/com/ustadmobile/core/container/testfile1.png  : channel: start\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST BlobDownloadClientUseCaseCommonJvm$downloadItemsFromChannelProcessor$invokeSuspend - BlobDownloadClientU\u000a...[truncated 1319 chars]...\u000aeted\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER BlobDownloadClientUseCaseCommonJvmTest$givenListOfBlobsToDownload_whenInvoked_thenShouldRequestAll - BlobDownloadClientUseCaseCommonJvmTest: Recorded requests for http://localhost.localdomain:59341/com/ustadmobile/core/container/testfile1.png, http://localhost.localdomain:59341/com/ustadmobile/core/container/testfile2.png, http://localhost.localdomain:59341/com/ustadmobile/core/container/testfile3.png\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.136,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.blob.download.BlobDownloadClientUseCaseCommonJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST BlobDownloadClientUseCaseCommonJvm$downloadItemsFromChannelProcessor$invokeSuspend - BlobDownloadClientUseCaseCommonJvm: #0 http://localhost:59341/com/ustadmobile/core/container/testfile1.png  : channel: start\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST BlobDownloadClientUseCaseCommonJvm$downloadItemsFromChannelProcessor$invokeSuspend - BlobDownloadClientU\u000a...[truncated 1319 chars]...\u000aeted\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER BlobDownloadClientUseCaseCommonJvmTest$givenListOfBlobsToDownload_whenInvoked_thenShouldRequestAll - BlobDownloadClientUseCaseCommonJvmTest: Recorded requests for http://localhost.localdomain:59341/com/ustadmobile/core/container/testfile1.png, http://localhost.localdomain:59341/com/ustadmobile/core/container/testfile2.png, http://localhost.localdomain:59341/com/ustadmobile/core/container/testfile3.png\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:54.542Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.download.ContentManifestDownloadUseCaseTest",
          "duration" : 0.146,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenContentEntryVersionUidAndManifest_whenInvoked_thenWillCreateLockJoinsAndEnqueueBlobDownloadForAllItemsInManifest[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 222 chars]...\u000aite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[TransferJob]\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #5 : SQLite Change Tracker: Changed tables=[CacheLockJoin]\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.146,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.blob.download.ContentManifestDownloadUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 222 chars]...\u000aite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[TransferJob]\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #5 : SQLite Change Tracker: Changed tables=[CacheLockJoin]\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:54.679Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.saveandmanifest.SaveLocalUriAndManifestUploadIntegrationTest",
          "duration" : 1.418,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidPdf_whenImportedOnClient_thenWilBeUploadedToServer[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 1546349 chars]...\u000aFINE: FINER DoorLog - [DoorEventSource@com.ustadmobile.door.sse.DoorEventSource@4d7fba20 - http://localhost:42093/UmAppDatabase/replication/sse?door-node=4567734360870667810%2F31047952-045e-4f21-8298-7202a68e763b] close\u000aJun 30, 2025 4:43:02 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.saveandmanifest.SaveLocalUriAndManifestUploadIntegrationTest",
          "duration" : 2.288,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidXapiFile_whenUploadInterrupted_thenWillRetry[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 1546349 chars]...\u000aFINE: FINER DoorLog - [DoorEventSource@com.ustadmobile.door.sse.DoorEventSource@4d7fba20 - http://localhost:42093/UmAppDatabase/replication/sse?door-node=4567734360870667810%2F31047952-045e-4f21-8298-7202a68e763b] close\u000aJun 30, 2025 4:43:02 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.saveandmanifest.SaveLocalUriAndManifestUploadIntegrationTest",
          "duration" : 1.19,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidXapiFile_whenImportedOnClient_thenWillBeUploadedToServer[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 1546349 chars]...\u000aFINE: FINER DoorLog - [DoorEventSource@com.ustadmobile.door.sse.DoorEventSource@4d7fba20 - http://localhost:42093/UmAppDatabase/replication/sse?door-node=4567734360870667810%2F31047952-045e-4f21-8298-7202a68e763b] close\u000aJun 30, 2025 4:43:02 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.saveandmanifest.SaveLocalUriAndManifestUploadIntegrationTest",
          "duration" : 3.627,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidH5p_whenImportedOnClient_thenWillBeUploadedToServer[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 1546349 chars]...\u000aFINE: FINER DoorLog - [DoorEventSource@com.ustadmobile.door.sse.DoorEventSource@4d7fba20 - http://localhost:42093/UmAppDatabase/replication/sse?door-node=4567734360870667810%2F31047952-045e-4f21-8298-7202a68e763b] close\u000aJun 30, 2025 4:43:02 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 8.523,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.blob.saveandmanifest.SaveLocalUriAndManifestUploadIntegrationTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:42:54 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 1546349 chars]...\u000aFINE: FINER DoorLog - [DoorEventSource@com.ustadmobile.door.sse.DoorEventSource@4d7fba20 - http://localhost:42093/UmAppDatabase/replication/sse?door-node=4567734360870667810%2F31047952-045e-4f21-8298-7202a68e763b] close\u000aJun 30, 2025 4:43:02 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:54.826Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.saveandmanifest.SaveLocalUriAsBlobAndManifestUseCaseJvmTest",
          "duration" : 0.034,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenLocalUrisToManifest_whenInvoked_thenAreStoredInCacheAsPerManifestBodyDataUrl[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER SaveLocalUrisAsBlobsUseCaseJvm$invoke$invokeSuspend - SaveLocalUrisAsB\u000a...[truncated 3358 chars]...\u000arieve http://localhost:8094/api/blob/kogGiGy6nDHut87gor1HOPRG0qvTakw30a1QMo7hXHk%3D\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO UstadCache - UstadCache(client): Retrieve http://localhost:8094/api/blob/kogGiGy6nDHut87gor1HOPRG0qvTakw30a1QMo7hXHk%3D\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER UstadCache - UstadCache(client): FOUND http://localhost:8094/api/blob/kogGiGy6nDHut87gor1HOPRG0qvTakw30a1QMo7hXHk%3D\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.034,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.blob.saveandmanifest.SaveLocalUriAsBlobAndManifestUseCaseJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER SaveLocalUrisAsBlobsUseCaseJvm$invoke$invokeSuspend - SaveLocalUrisAsB\u000a...[truncated 3358 chars]...\u000arieve http://localhost:8094/api/blob/kogGiGy6nDHut87gor1HOPRG0qvTakw30a1QMo7hXHk%3D\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO UstadCache - UstadCache(client): Retrieve http://localhost:8094/api/blob/kogGiGy6nDHut87gor1HOPRG0qvTakw30a1QMo7hXHk%3D\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER UstadCache - UstadCache(client): FOUND http://localhost:8094/api/blob/kogGiGy6nDHut87gor1HOPRG0qvTakw30a1QMo7hXHk%3D\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:03.350Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.savelocaluris.SaveLocalUrisAsBlobsUseCaseJvmIntegrationTest",
          "duration" : 1.028,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenLocalUris_whenInvoked_thenBlobsAreUploadedAndCanBeRetrievedViaCache[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 5701 chars]...\u000ap://localhost:44837/api/blob/SAwMEEihCX84BYpcX9K0y%2FGPuYxx298222HQu85QihE%3D\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO UstadCache - UstadCache(server): Retrieve http://localhost:44837/api/blob/SAwMEEihCX84BYpcX9K0y%2FGPuYxx298222HQu85QihE%3D\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER UstadCache - UstadCache(server): FOUND http://localhost:44837/api/blob/SAwMEEihCX84BYpcX9K0y%2FGPuYxx298222HQu85QihE%3D\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 1.028,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.blob.savelocaluris.SaveLocalUrisAsBlobsUseCaseJvmIntegrationTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 5701 chars]...\u000ap://localhost:44837/api/blob/SAwMEEihCX84BYpcX9K0y%2FGPuYxx298222HQu85QihE%3D\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO UstadCache - UstadCache(server): Retrieve http://localhost:44837/api/blob/SAwMEEihCX84BYpcX9K0y%2FGPuYxx298222HQu85QihE%3D\u000aJun 30, 2025 4:43:03 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER UstadCache - UstadCache(server): FOUND http://localhost:44837/api/blob/SAwMEEihCX84BYpcX9K0y%2FGPuYxx298222HQu85QihE%3D\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:03.385Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.upload.BlobUploadClientUseCaseJvmTest",
          "duration" : 0.107,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenTransferJobInDatabase_whenErrorOccurs_thenAttemptCountIncrementAndExceptionThrown[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 16942 chars]...\u000arce connection pool\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.upload.BlobUploadClientUseCaseJvmTest",
          "duration" : 0.018,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenBatchDataRetrieved_whenOneUploadThrowsException_thenWillRethrow[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 16942 chars]...\u000arce connection pool\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.upload.BlobUploadClientUseCaseJvmTest",
          "duration" : 0.023,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenBatch_whenInvoked_thenWillRetrievePartialDataAndUpload[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 16942 chars]...\u000arce connection pool\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.148,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.blob.upload.BlobUploadClientUseCaseJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 16942 chars]...\u000arce connection pool\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:04.415Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.upload.BlobUploadServerUseCaseTest",
          "duration" : 0.038,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPartialRequest_whenInitialzedAndBlobsUploaded_thenWillListRemainingItemsAndStoreEntries[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER BlobUploadServerUseCase$onStartUploadSession - BlobUploadServerUseCase#onStartUploadSession(upload 2e0200bb-a4fe-4712-b293-0ff1b2d25228):  batch upload init:  Client list 3 blobs. 2 uploads pending (0 partial)\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER BlobUploadServerUseCase$onStartUploadSession - BlobUploadServerUseCase#onStartUploadSession(upload 2e0200bb-a4\u000a...[truncated 233 chars]...\u000asion - BlobUploadServerUseCase#onStartUploadSession(upload 2e0200bb-a4fe-4712-b293-0ff1b2d25228):  Partial uploads pending = https://endpoint.com/api/blob/DWDf0O8J19BHTcJOC4RUdOWkQIE8T91ahd5W5PySXy4=\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER BlobUploadServerUseCase$onStartUploadSession - BlobUploadServerUseCase#onStartUploadSession(upload 0696e385-18eb-43ac-872f-bfaa6e81c43e):  batch upload init:  Client list 3 blobs. 3 uploads pending (0 partial)\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.blob.upload.BlobUploadServerUseCaseTest",
          "duration" : 0.005,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNewRequest_whenInitializedAndBlobsUploaded_thenWillStoreEntries[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER BlobUploadServerUseCase$onStartUploadSession - BlobUploadServerUseCase#onStartUploadSession(upload 2e0200bb-a4fe-4712-b293-0ff1b2d25228):  batch upload init:  Client list 3 blobs. 2 uploads pending (0 partial)\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER BlobUploadServerUseCase$onStartUploadSession - BlobUploadServerUseCase#onStartUploadSession(upload 2e0200bb-a4\u000a...[truncated 233 chars]...\u000asion - BlobUploadServerUseCase#onStartUploadSession(upload 2e0200bb-a4fe-4712-b293-0ff1b2d25228):  Partial uploads pending = https://endpoint.com/api/blob/DWDf0O8J19BHTcJOC4RUdOWkQIE8T91ahd5W5PySXy4=\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER BlobUploadServerUseCase$onStartUploadSession - BlobUploadServerUseCase#onStartUploadSession(upload 0696e385-18eb-43ac-872f-bfaa6e81c43e):  batch upload init:  Client list 3 blobs. 3 uploads pending (0 partial)\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.043,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.blob.upload.BlobUploadServerUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER BlobUploadServerUseCase$onStartUploadSession - BlobUploadServerUseCase#onStartUploadSession(upload 2e0200bb-a4fe-4712-b293-0ff1b2d25228):  batch upload init:  Client list 3 blobs. 2 uploads pending (0 partial)\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER BlobUploadServerUseCase$onStartUploadSession - BlobUploadServerUseCase#onStartUploadSession(upload 2e0200bb-a4\u000a...[truncated 233 chars]...\u000asion - BlobUploadServerUseCase#onStartUploadSession(upload 2e0200bb-a4fe-4712-b293-0ff1b2d25228):  Partial uploads pending = https://endpoint.com/api/blob/DWDf0O8J19BHTcJOC4RUdOWkQIE8T91ahd5W5PySXy4=\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER BlobUploadServerUseCase$onStartUploadSession - BlobUploadServerUseCase#onStartUploadSession(upload 0696e385-18eb-43ac-872f-bfaa6e81c43e):  batch upload init:  Client list 3 blobs. 3 uploads pending (0 partial)\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:04.563Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.bulkaddusers.BulkAddUsersUseCaseJvmTest",
          "duration" : 0.218,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenClazzDoesNotExist_whenInvoked_thenWillCreateNewClazzAndProcessEnrolment[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 486 chars]...\u000amLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[]\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.bulkaddusers.BulkAddUsersUseCaseJvmTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidImportRows_whenInvoked_thenWillAddNewPerson[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 486 chars]...\u000amLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[]\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.bulkaddusers.BulkAddUsersUseCaseJvmTest",
          "duration" : 0.013,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenMissingRequiredColumns_whenInvoked_thenWillThrowIllegalArgumentException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 486 chars]...\u000amLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[]\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.256,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.bulkaddusers.BulkAddUsersUseCaseJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 486 chars]...\u000amLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[]\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:04.607Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.cachelock.AddRetainAllActiveTriggersUseCaseTest",
          "duration" : 0.007,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "test[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.007,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.cachelock.AddRetainAllActiveTriggersUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:04.863Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.clazzenrolment.pendingenrolment.RequestEnrolmentUseCaseJvmTest",
          "duration" : 0.061,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPersonAlreadyEnroled_whenInvoked_thenWillThrowAlreadyEnroledException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5573 chars]...\u000a::memory:] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[ScopedGrant]\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #5 : SQLite Change Tracker: Changed tables=[EnrolmentRequest]\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.clazzenrolment.pendingenrolment.RequestEnrolmentUseCaseJvmTest",
          "duration" : 0.049,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoPendingEnrolmentsOrRequests_whenInvoked_thenRequestInserted[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5573 chars]...\u000a::memory:] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[ScopedGrant]\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #5 : SQLite Change Tracker: Changed tables=[EnrolmentRequest]\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.clazzenrolment.pendingenrolment.RequestEnrolmentUseCaseJvmTest",
          "duration" : 0.041,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenInvalidCode_whenInvoked_thenWillThrowIllegalArgException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5573 chars]...\u000a::memory:] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[ScopedGrant]\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #5 : SQLite Change Tracker: Changed tables=[EnrolmentRequest]\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.clazzenrolment.pendingenrolment.RequestEnrolmentUseCaseJvmTest",
          "duration" : 0.053,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPendingRequestAlreadyExists_whenInvoked_thenWillThrowAlreadyHasPendingEnrolmentException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5573 chars]...\u000a::memory:] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[ScopedGrant]\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #5 : SQLite Change Tracker: Changed tables=[EnrolmentRequest]\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.204,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.clazzenrolment.pendingenrolment.RequestEnrolmentUseCaseJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:04 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5573 chars]...\u000a::memory:] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[ScopedGrant]\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #5 : SQLite Change Tracker: Changed tables=[EnrolmentRequest]\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:04.871Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.compress.audio.CompressAudioTestCaseJvm",
          "duration" : 0.213,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidAudioInputFile_whenInvoked_thenWillCompress[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST CompressAudioUseCaseSox$invoke$invokeSuspend - CompressAudioUseCase: Running sox: /usr/bin/sox /tmp/junit12953637690152063901/soundfile.mp3 -C 2 --type ogg /tmp/junit12953637690152063901/junit3608977160806616012/9217f61d-6bed-4e45-96b0-3cee7d1895bd\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 50,
          "className" : "com.ustadmobile.core.domain.compress.audio.CompressAudioTestCaseJvm",
          "duration" : 0.002,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenMpg123PathNotNullAndInputIsMp3ThenWillInvokeMpg123AndCompressWav[jvm]",
          "properties" : {
            
          },
          "skipped" : True,
          "skippedMessage" : "",
          "status" : "SKIPPED",
          "stderr" : "Jun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST CompressAudioUseCaseSox$invoke$invokeSuspend - CompressAudioUseCase: Running sox: /usr/bin/sox /tmp/junit12953637690152063901/soundfile.mp3 -C 2 --type ogg /tmp/junit12953637690152063901/junit3608977160806616012/9217f61d-6bed-4e45-96b0-3cee7d1895bd\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 50,
          "className" : "com.ustadmobile.core.domain.compress.audio.CompressAudioTestCaseJvm",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenMpg123PathNotNullAndInputIsNotMp3_whenInvoked_thenWillNotUseMpg123[jvm]",
          "properties" : {
            
          },
          "skipped" : True,
          "skippedMessage" : "",
          "status" : "SKIPPED",
          "stderr" : "Jun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST CompressAudioUseCaseSox$invoke$invokeSuspend - CompressAudioUseCase: Running sox: /usr/bin/sox /tmp/junit12953637690152063901/soundfile.mp3 -C 2 --type ogg /tmp/junit12953637690152063901/junit3608977160806616012/9217f61d-6bed-4e45-96b0-3cee7d1895bd\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.215,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.compress.audio.CompressAudioTestCaseJvm",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST CompressAudioUseCaseSox$invoke$invokeSuspend - CompressAudioUseCase: Running sox: /usr/bin/sox /tmp/junit12953637690152063901/soundfile.mp3 -C 2 --type ogg /tmp/junit12953637690152063901/junit3608977160806616012/9217f61d-6bed-4e45-96b0-3cee7d1895bd\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:05.076Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.compress.image.CompressImageUseCaseJvmTest",
          "duration" : 0.192,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenInputImage_whenInvoked_thenWillBeResized[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.192,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.compress.image.CompressImageUseCaseJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:05.292Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.compress.list.CompressListUseCaseTest",
          "duration" : 0.031,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileList_whenInvoked_thenWillInvokeCompressorAndReturnResult[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.031,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.compress.list.CompressListUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:05.485Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.compress.pdf.CompressPdfUseCaseJvmTest",
          "duration" : 0.09,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidPdf_whenInvoked_thenWillCompress[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER CompressPdfUseCaseJvm$invoke$invokeSuspend - CompressPdfUseCaseJvm: running /usr/bin/gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH -sOutputFile=/tmp/junit9286955955825495670/junit11453996371776185945/d2b094ae-8ac9-4a49-9613-6a59c8401608 /tmp/junit9286955955825495670/junit4042050501237294302.tmp \u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm perform\u000a...[truncated 84 chars]...\u000ampressPdfUseCaseJvm: completed page 1\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST CompressPdfUseCaseJvm$invoke$2$outputReaderJob$invokeSuspend - CompressPdfUseCaseJvm: completed page 2\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER CompressPdfUseCaseJvm$invoke$invokeSuspend - CompressPdfUseCaseJvm: compressed file:/tmp/junit9286955955825495670/junit4042050501237294302.tmp from 152064 bytes to 99455 bytes\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.09,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.compress.pdf.CompressPdfUseCaseJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER CompressPdfUseCaseJvm$invoke$invokeSuspend - CompressPdfUseCaseJvm: running /usr/bin/gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH -sOutputFile=/tmp/junit9286955955825495670/junit11453996371776185945/d2b094ae-8ac9-4a49-9613-6a59c8401608 /tmp/junit9286955955825495670/junit4042050501237294302.tmp \u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm perform\u000a...[truncated 84 chars]...\u000ampressPdfUseCaseJvm: completed page 1\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST CompressPdfUseCaseJvm$invoke$2$outputReaderJob$invokeSuspend - CompressPdfUseCaseJvm: completed page 2\u000aJun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER CompressPdfUseCaseJvm$invoke$invokeSuspend - CompressPdfUseCaseJvm: compressed file:/tmp/junit9286955955825495670/junit4042050501237294302.tmp from 152064 bytes to 99455 bytes\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:05.517Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.compress.video.CompressVideoUseCaseHandbrakeTest",
          "duration" : 2.887,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidVideoFile_whenCompressed_thenWillOutputVideoWithSameLength[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER CompressVideoUseCaseHandbrake$invoke$invokeSuspend - CompressVideoUseCase: running /usr/bin/HandBrakeCLI -i /home/jenkins/.jenkins/workspace/dev-simplified-onboarding-belowage13-flow/core/tmp-bigbuckbunny.mp4 -o /home/jenkins/.jenkins/workspace/dev-simplified-onboarding-belowage13-flow/core/55fe7e45-9b6e-47b0-9381-92450324f221.mp4 --format av_mp4 --encoder svt_av1 --aencoder opus --maxWidth 720 --maxHeight 405 --quality 55 --ab 96 --rate 30 --json \u000a",
          "stdout" : ""
        }
      ],
      "duration" : 2.887,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.compress.video.CompressVideoUseCaseHandbrakeTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:05 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER CompressVideoUseCaseHandbrake$invoke$invokeSuspend - CompressVideoUseCase: running /usr/bin/HandBrakeCLI -i /home/jenkins/.jenkins/workspace/dev-simplified-onboarding-belowage13-flow/core/tmp-bigbuckbunny.mp4 -o /home/jenkins/.jenkins/workspace/dev-simplified-onboarding-belowage13-flow/core/55fe7e45-9b6e-47b0-9381-92450324f221.mp4 --format av_mp4 --encoder svt_av1 --aencoder opus --maxWidth 720 --maxHeight 405 --quality 55 --ab 96 --rate 30 --json \u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:05.607Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.compress.video.FindHandBrakeUseCaseTest",
          "duration" : 0.097,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenHandBrakeCliOnSystem_whenInvoked_thenWillFindLatestVersion[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.097,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.compress.video.FindHandBrakeUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:08.494Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.contententry.delete.DeleteContentEntryParentChildJoinUseCaseTest",
          "duration" : 0.025,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEntryToDelete_whenInvoked_willMarkContentParentChildJoinAsDeletedAndInsertDeletedItem[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:08 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:08 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:08 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[ContentEntry, ContentEntryParentChildJoin, DeletedItem]\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.025,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.contententry.delete.DeleteContentEntryParentChildJoinUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:08 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:08 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:08 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[ContentEntry, ContentEntryParentChildJoin, DeletedItem]\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:08.591Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.courseblockupdate.AddOrUpdateCourseBlockUseCaseTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCourseBlockListEndingWithItemInModule_whenBlockAdded_thenShouldMatchIndent[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.courseblockupdate.AddOrUpdateCourseBlockUseCaseTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCourseBlockListEndingWithModule_whenBlockAdded_thenShouldBeIndentedWithParentModuleSet[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.001,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.courseblockupdate.AddOrUpdateCourseBlockUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:08.617Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.credentials.GetCredentialUseCaseTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenHttpsLearningSpaceWithPath_whenConvertedBack_thenWillMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.credentials.GetCredentialUseCaseTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPlainHttpLearningSpace_whenConvertedBack_thenWillMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.credentials.GetCredentialUseCaseTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenHttpsLearningSpace_whenConvertedBack_thenWillMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.credentials.GetCredentialUseCaseTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPlainHttpLearningSpaceWithPath_whenConvertedBack_thenWillMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.001,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.credentials.GetCredentialUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:08.618Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.extractvideothumbnail.ExtractVideoThumbnailUseCaseJvmTest",
          "duration" : 0.511,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidVideo_whenInvoked_thenWillSaveValidThumbnail[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.511,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.extractvideothumbnail.ExtractVideoThumbnailUseCaseJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:08.619Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.interop.oneroster.OneRosterEndpointTest",
          "duration" : 0.051,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenLineItemExists_whenCallGetLineItemWithSourcedId_thenShouldReturn200[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 10436 chars]...\u000aun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #6 : SQLite Change Tracker: Changed tables=[ExternalAppPermission]\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #11 : SQLite Change Tracker: Changed tables=[StudentResult]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.interop.oneroster.OneRosterEndpointTest",
          "duration" : 0.041,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidAuth_whenRequestClassesForUser_thenShouldReturnClassList[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 10436 chars]...\u000aun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #6 : SQLite Change Tracker: Changed tables=[ExternalAppPermission]\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #11 : SQLite Change Tracker: Changed tables=[StudentResult]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.interop.oneroster.OneRosterEndpointTest",
          "duration" : 0.053,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidRawOneRosterLineItem_whenCallPutLineItem_thenShouldRespond201[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 10436 chars]...\u000aun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #6 : SQLite Change Tracker: Changed tables=[ExternalAppPermission]\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #11 : SQLite Change Tracker: Changed tables=[StudentResult]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.interop.oneroster.OneRosterEndpointTest",
          "duration" : 0.048,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidLineItem_whenCallPutLineItem_thenShouldInsertAndReturn201[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 10436 chars]...\u000aun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #6 : SQLite Change Tracker: Changed tables=[ExternalAppPermission]\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #11 : SQLite Change Tracker: Changed tables=[StudentResult]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.interop.oneroster.OneRosterEndpointTest",
          "duration" : 0.054,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidAuth_whenRequestResultsForStudentClass_thenShouldReturnResults[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 10436 chars]...\u000aun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #6 : SQLite Change Tracker: Changed tables=[ExternalAppPermission]\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #11 : SQLite Change Tracker: Changed tables=[StudentResult]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.interop.oneroster.OneRosterEndpointTest",
          "duration" : 0.04,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenLineItemDoesNotExist_whenCallGetLineItem_thenShouldReturn404[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 10436 chars]...\u000aun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #6 : SQLite Change Tracker: Changed tables=[ExternalAppPermission]\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #11 : SQLite Change Tracker: Changed tables=[StudentResult]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.interop.oneroster.OneRosterEndpointTest",
          "duration" : 0.052,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidResult_whenCallPutResult_thenShouldInsertAndReturn201[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 10436 chars]...\u000aun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #6 : SQLite Change Tracker: Changed tables=[ExternalAppPermission]\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #11 : SQLite Change Tracker: Changed tables=[StudentResult]\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.339,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.interop.oneroster.OneRosterEndpointTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 10436 chars]...\u000aun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #6 : SQLite Change Tracker: Changed tables=[ExternalAppPermission]\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #11 : SQLite Change Tracker: Changed tables=[StudentResult]\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:09.131Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.invite.ParseInviteUseCaseTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenMixedInput_whenInvoke_thenReturnMixedResults[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.invite.ParseInviteUseCaseTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidEmail_whenInvoke_thenReturnTrue[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.invite.ParseInviteUseCaseTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidUsername_whenInvoke_thenReturnTrue[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.001,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.invite.ParseInviteUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:09.471Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.passkey.EncodeDecodeUserHandleUseCaseTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenTooLongLearningSpaceUrl_whenEncoded_thenShouldThrowIllegalArgumentException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.passkey.EncodeDecodeUserHandleUseCaseTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPersonUidAndLearningSpace_whenEncodedAndThenDecoded_thenShouldReturnSameValues[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.passkey.EncodeDecodeUserHandleUseCaseTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPersonUidAndLiveUrl_whenEncodedAndThenDecoded_thenShouldReturnSameValues[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.0,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.passkey.EncodeDecodeUserHandleUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:09.473Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.peerreviewallocation.UpdatePeerReviewAllocationUseCaseTest",
          "duration" : 0.013,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoSubmitters_whenInvoked_thenShouldReturnEmptyList[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 700 chars]...\u000a25 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.peerreviewallocation.UpdatePeerReviewAllocationUseCaseTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenClazzWithSubmittersWithNoExistingAllocations_whenInvoked_thenShouldAllocate[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 700 chars]...\u000a25 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.peerreviewallocation.UpdatePeerReviewAllocationUseCaseTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenClazzWithSubmittersWithExistingAllocations_whenNumReviewersIncreased_thenShouldAllocateRemainder[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 700 chars]...\u000a25 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.peerreviewallocation.UpdatePeerReviewAllocationUseCaseTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenClazzWithSubmitters_whenTooManyReviewsSet_thenShouldRunThroughWithSomeAllocationsEmpty[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 700 chars]...\u000a25 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.peerreviewallocation.UpdatePeerReviewAllocationUseCaseTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenClazzWithSubmittersWithExistingAllocations_whenNumReviewersReduced_thenShouldTruncateList[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 700 chars]...\u000a25 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.105,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.peerreviewallocation.UpdatePeerReviewAllocationUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 700 chars]...\u000a25 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:09.474Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.upload.ChunkedUploadClientUseCaseTest",
          "duration" : 0.276,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileUploadedInChunks_whenCombined_thenShouldMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(f13f8eb5-4ffe-408e-84a8-03a1214cadb3): Uploading 133184 bytes in 7 chunks to http://localhost.localdomain:44629/ starting from byte=0\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(f13f8eb5-4ffe-408e-84a8-03a1214cadb3): Uploa\u000a...[truncated 160 chars]...\u000a: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(95577a9f-b26a-4b3c-88c1-2ea9e745fb13): Uploading 133184 bytes in 7 chunks to http://localhost.localdomain:56725/ starting from byte=10000\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(95577a9f-b26a-4b3c-88c1-2ea9e745fb13): Upload complete of 133184 bytes in 7 chunks to http://localhost.localdomain:56725/\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.upload.ChunkedUploadClientUseCaseTest",
          "duration" : 0.215,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPartialUpload_whenCombined_thenShouldMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(f13f8eb5-4ffe-408e-84a8-03a1214cadb3): Uploading 133184 bytes in 7 chunks to http://localhost.localdomain:44629/ starting from byte=0\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(f13f8eb5-4ffe-408e-84a8-03a1214cadb3): Uploa\u000a...[truncated 160 chars]...\u000a: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(95577a9f-b26a-4b3c-88c1-2ea9e745fb13): Uploading 133184 bytes in 7 chunks to http://localhost.localdomain:56725/ starting from byte=10000\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(95577a9f-b26a-4b3c-88c1-2ea9e745fb13): Upload complete of 133184 bytes in 7 chunks to http://localhost.localdomain:56725/\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.491,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.upload.ChunkedUploadClientUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(f13f8eb5-4ffe-408e-84a8-03a1214cadb3): Uploading 133184 bytes in 7 chunks to http://localhost.localdomain:44629/ starting from byte=0\u000aJun 30, 2025 4:43:09 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(f13f8eb5-4ffe-408e-84a8-03a1214cadb3): Uploa\u000a...[truncated 160 chars]...\u000a: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(95577a9f-b26a-4b3c-88c1-2ea9e745fb13): Uploading 133184 bytes in 7 chunks to http://localhost.localdomain:56725/ starting from byte=10000\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ChunkedUploadClientUseCaseKtorImpl$invoke - ChunkedUploadClientUseCase(95577a9f-b26a-4b3c-88c1-2ea9e745fb13): Upload complete of 133184 bytes in 7 chunks to http://localhost.localdomain:56725/\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:09.580Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.upload.ChunkedUploadServerUseCaseTest",
          "duration" : 0.003,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileUploadedInMultipleChunks_whenFinalRequestMade_thenOnCompleteCalledWithValidFile[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO ChunkedUploadServerUseCaseJvm$onChunkReceived - ChunkedUploadServerUseCaseJvm(5cbb027f-1cf2-4423-bcca-96e7d8882a54)  receive request \u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO ChunkedUploadServerUseCaseJvm$onChunkReceived - ChunkedUploadServerUseCaseJvm(5cbb027f-1cf2-4423-bcca-96e7d8882a54)  receive request \u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.Napi\u000a...[truncated 4474 chars]...\u000ailogJvm performLog\u000aINFO: INFO ChunkedUploadServerUseCaseJvm$onChunkReceived - ChunkedUploadServerUseCaseJvm(5cbb027f-1cf2-4423-bcca-96e7d8882a54)  receive request \u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST ChunkedUploadServerUseCaseJvm$onChunkReceived - ChunkedUploadServerUseCaseJvm(5cbb027f-1cf2-4423-bcca-96e7d8882a54)  appended chunk (isFinal=true) to /tmp/junit6359095681322244464/junit5990084581132087363/5cbb027f-1cf2-4423-bcca-96e7d8882a54 \u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.003,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.upload.ChunkedUploadServerUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO ChunkedUploadServerUseCaseJvm$onChunkReceived - ChunkedUploadServerUseCaseJvm(5cbb027f-1cf2-4423-bcca-96e7d8882a54)  receive request \u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO ChunkedUploadServerUseCaseJvm$onChunkReceived - ChunkedUploadServerUseCaseJvm(5cbb027f-1cf2-4423-bcca-96e7d8882a54)  receive request \u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.Napi\u000a...[truncated 4474 chars]...\u000ailogJvm performLog\u000aINFO: INFO ChunkedUploadServerUseCaseJvm$onChunkReceived - ChunkedUploadServerUseCaseJvm(5cbb027f-1cf2-4423-bcca-96e7d8882a54)  receive request \u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST ChunkedUploadServerUseCaseJvm$onChunkReceived - ChunkedUploadServerUseCaseJvm(5cbb027f-1cf2-4423-bcca-96e7d8882a54)  appended chunk (isFinal=true) to /tmp/junit6359095681322244464/junit5990084581132087363/5cbb027f-1cf2-4423-bcca-96e7d8882a54 \u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:10.071Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.validatevideofile.ValidateVideoFileUseCaseMediaInfoTest",
          "duration" : 0.015,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileIsNotVideo_whenInvoked_willReturnFalse[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.validatevideofile.ValidateVideoFileUseCaseMediaInfoTest",
          "duration" : 0.005,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileDoesNotExist_whenInvoked_willReturnFalse[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.validatevideofile.ValidateVideoFileUseCaseMediaInfoTest",
          "duration" : 0.018,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidVideo_whenInvoked_willReturnTrue[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.038,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.validatevideofile.ValidateVideoFileUseCaseMediaInfoTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:10.074Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.XapiStatementResourceTest",
          "duration" : 0.049,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStatementWithObjectAsSubStatement_whenStored_thenShouldBeInDb[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 3861 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.XapiStatementResourceTest",
          "duration" : 0.026,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStatementWithObjectAsStatementRef_whenStored_thenShouldBeInDb[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 3861 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.XapiStatementResourceTest",
          "duration" : 0.025,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStatementPut_whenGetCalled_thenShouldBeRetrieved[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 3861 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.XapiStatementResourceTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStatementWithObjectAsGroup_whenStored_thenShouldBeInDb[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 3861 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.XapiStatementResourceTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStatementWithGroupActorAndExtensions_whenPutCalled_thenShouldBeStored[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 3861 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.XapiStatementResourceTest",
          "duration" : 0.03,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenLongStatementWithContextActivities_whenStored_thenShouldBeInDb[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 3861 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.XapiStatementResourceTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStatementWithChoiceActivity_whenStored_thenShouldBeInDb[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 3861 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.201,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.xapi.XapiStatementResourceTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 3861 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:10.114Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.coursegroup.CreateXapiGroupForCourseGroupUseCaseTest",
          "duration" : 0.051,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidCourseGroupSet_whenInvoked_thenXapiGroupCreated[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 991 chars]...\u000aAsyncInternal connection #6 : SQLite Change Tracker: Changed tables=[Person, ClazzEnrolment, CourseGroupMember]\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #7 : SQLite Change Tracker: Changed tables=[ClazzAssignment]\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.051,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.xapi.coursegroup.CreateXapiGroupForCourseGroupUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 991 chars]...\u000aAsyncInternal connection #6 : SQLite Change Tracker: Changed tables=[Person, ClazzEnrolment, CourseGroupMember]\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #7 : SQLite Change Tracker: Changed tables=[ClazzAssignment]\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:10.316Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.formatresponse.FormatStatementAuthenticatorAssertionResponseJSONUseCaseTest",
          "duration" : 0.026,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenChoiceResponse_whenFormatted_thenResponseWillBeAsExpected[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4682 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.formatresponse.FormatStatementAuthenticatorAssertionResponseJSONUseCaseTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenTrueFalseResponse_whenFormatted_thenWillBeAsExpected[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4682 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.formatresponse.FormatStatementAuthenticatorAssertionResponseJSONUseCaseTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenLikertResponse_whenFormatted_thenWillBeAsExpected[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4682 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.formatresponse.FormatStatementAuthenticatorAssertionResponseJSONUseCaseTest",
          "duration" : 0.021,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenInvalidResponse_whenFormatted_thenWontThrowException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4682 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.formatresponse.FormatStatementAuthenticatorAssertionResponseJSONUseCaseTest",
          "duration" : 0.023,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenChoiceWithMultipleResponses_whenFormatted_thenResponseWillBeAsExpected[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4682 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.formatresponse.FormatStatementAuthenticatorAssertionResponseJSONUseCaseTest",
          "duration" : 0.023,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenSequencingResponse_whenFormatted_thenWillBeAsExpected[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4682 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.formatresponse.FormatStatementAuthenticatorAssertionResponseJSONUseCaseTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPerformanceResponse_whenFormatted_thenWillBeAsExpected[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4682 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.formatresponse.FormatStatementAuthenticatorAssertionResponseJSONUseCaseTest",
          "duration" : 0.025,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenMatchingResponse_whenFormatted_thenWillBeAsExpected[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4682 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.19,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.xapi.formatresponse.FormatStatementAuthenticatorAssertionResponseJSONUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4682 chars]...\u000ail.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[VerbEntity, ActivityEntity, StatementEntity, ActorEntity, ActivityInteractionEntity, VerbLangMapEntry, ActivityLangMapEntry, StatementEntityJson]\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:10.368Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.noninteractivecontentusagestatementrecorder.NonInteractiveContentXapiStatementRecorderTest",
          "duration" : 2.065,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenRecorderCreated_whenOnActiveSetAndOnCompletedInvoked_thenShouldRecordCompletedStatement[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onActiveChanged - ContentUsageStatementRecorder: active=true\u000aJun 30, 2025 4:43:12 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onComplete - ContentUsageStatementRecorder: completed\u000aJun 30, 2025 4:43:12 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onActiveChanged - ContentUsageStatementRecorder: active=true\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onActiveChanged - ContentUsageStatementRecorder: active=false\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.noninteractivecontentusagestatementrecorder.NonInteractiveContentXapiStatementRecorderTest",
          "duration" : 2.002,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenRecorderCreated_whenOnActiveSetAndClearedBeforeCompleted_thenShouldRecordProgress[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onActiveChanged - ContentUsageStatementRecorder: active=true\u000aJun 30, 2025 4:43:12 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onComplete - ContentUsageStatementRecorder: completed\u000aJun 30, 2025 4:43:12 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onActiveChanged - ContentUsageStatementRecorder: active=true\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onActiveChanged - ContentUsageStatementRecorder: active=false\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 4.067,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.xapi.noninteractivecontentusagestatementrecorder.NonInteractiveContentXapiStatementRecorderTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:10 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onActiveChanged - ContentUsageStatementRecorder: active=true\u000aJun 30, 2025 4:43:12 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onComplete - ContentUsageStatementRecorder: completed\u000aJun 30, 2025 4:43:12 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onActiveChanged - ContentUsageStatementRecorder: active=true\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onActiveChanged - ContentUsageStatementRecorder: active=false\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:10.559Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.state.XapiStateUseCaseIntegrationTest",
          "duration" : 0.034,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenBinaryStateStored_whenRetrieved_thenShouldMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5568 chars]...\u000aINFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[ActorEntity]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.state.XapiStateUseCaseIntegrationTest",
          "duration" : 0.04,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStateCreated_whenDeletedById_thenShouldBeNotFound[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5568 chars]...\u000aINFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[ActorEntity]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.state.XapiStateUseCaseIntegrationTest",
          "duration" : 0.038,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStateCreated_whenDeletedAllByContext_thenShouldBeNotFound[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5568 chars]...\u000aINFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[ActorEntity]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.state.XapiStateUseCaseIntegrationTest",
          "duration" : 0.034,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenExistingStateStored_whenNewStatePosted_thenShouldMerge[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5568 chars]...\u000aINFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[ActorEntity]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.state.XapiStateUseCaseIntegrationTest",
          "duration" : 0.03,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStateStored_whenRetrieve_thenShouldMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5568 chars]...\u000aINFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[ActorEntity]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.state.XapiStateUseCaseIntegrationTest",
          "duration" : 0.025,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenTextBodyTooLarge_whenStored_thenShouldThrowException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5568 chars]...\u000aINFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[ActorEntity]\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.domain.xapi.state.XapiStateUseCaseIntegrationTest",
          "duration" : 0.032,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenBinaryBodyTooLarge_whenStored_thenShouldThrowException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5568 chars]...\u000aINFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[ActorEntity]\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.233,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.domain.xapi.state.XapiStateUseCaseIntegrationTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 5568 chars]...\u000aINFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[ActorEntity]\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:14.627Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.embeddedhttp.EmbeddedHttpServerTest",
          "duration" : 0.057,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidRequest_whenHttpRequestMade_thenWillInvokeUseCase[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST EmbeddedHttpServer$serveApiEndpoint - EmbeddedHttpServer: content: endpoint=http://endpoint.com/ versionUid=1234 path=path/file.txt\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.057,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.embeddedhttp.EmbeddedHttpServerTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST EmbeddedHttpServer$serveApiEndpoint - EmbeddedHttpServer: content: endpoint=http://endpoint.com/ versionUid=1234 path=path/file.txt\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:14.861Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.NavCommandExecutionTrackerTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNavCommand_whenRunOrExecuteCalled_thenShouldExecuteOnce[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.NavCommandExecutionTrackerTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNavCommandTimedOut_whenRunOrExecuteCalled_thenShouldNotExecute[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.001,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.impl.NavCommandExecutionTrackerTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:14.918Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.UstadAccountManagerTest",
          "duration" : 0.164,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenAccountRequiresParentalConsent_whenLoginCalled_thenShouldThrowException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FI\u000a...[truncated 93517 chars]...\u000am performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[UserSession, OutgoingReplication]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] emitting 1 events com.ustadmobile.door.nodeevent.NodeEvent@3c295e67 \u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.UstadAccountManagerTest",
          "duration" : 0.107,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenTwoStoredAccounts_whenSetActiveAccountCalled_thenActiveAccountShouldChangeAndAllRemainInStoredAccounts[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FI\u000a...[truncated 93517 chars]...\u000am performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[UserSession, OutgoingReplication]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] emitting 1 events com.ustadmobile.door.nodeevent.NodeEvent@3c295e67 \u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.UstadAccountManagerTest",
          "duration" : 0.093,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenInvalidLoginCredentials_whenLoginCalled_thenShouldThrowException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FI\u000a...[truncated 93517 chars]...\u000am performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[UserSession, OutgoingReplication]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] emitting 1 events com.ustadmobile.door.nodeevent.NodeEvent@3c295e67 \u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.UstadAccountManagerTest",
          "duration" : 0.049,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoUserInPrefKeys_whenInitialized_shouldInitGuestAccountOnDefaultServer[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FI\u000a...[truncated 93517 chars]...\u000am performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[UserSession, OutgoingReplication]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] emitting 1 events com.ustadmobile.door.nodeevent.NodeEvent@3c295e67 \u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.UstadAccountManagerTest",
          "duration" : 0.082,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUnreachableServer_whenLoginCalled_thenShouldThrowException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FI\u000a...[truncated 93517 chars]...\u000am performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[UserSession, OutgoingReplication]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] emitting 1 events com.ustadmobile.door.nodeevent.NodeEvent@3c295e67 \u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.UstadAccountManagerTest",
          "duration" : 0.11,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidLoginCredentials_whenLoginCalledForSecondAccountOnSameServer_shouldAddAccount[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FI\u000a...[truncated 93517 chars]...\u000am performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[UserSession, OutgoingReplication]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] emitting 1 events com.ustadmobile.door.nodeevent.NodeEvent@3c295e67 \u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.UstadAccountManagerTest",
          "duration" : 0.099,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenActiveAccount_whenIncomingReplicationMakesUserSessionInactive_thenShouldEndSession[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FI\u000a...[truncated 93517 chars]...\u000am performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[UserSession, OutgoingReplication]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] emitting 1 events com.ustadmobile.door.nodeevent.NodeEvent@3c295e67 \u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.UstadAccountManagerTest",
          "duration" : 0.119,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidLoginCredentials_whenLoginCalledForFirstLogin_shouldInitLogin[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FI\u000a...[truncated 93517 chars]...\u000am performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[UserSession, OutgoingReplication]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] emitting 1 events com.ustadmobile.door.nodeevent.NodeEvent@3c295e67 \u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.UstadAccountManagerTest",
          "duration" : 0.104,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidRegistrationRequest_whenNewAccountRequested_thenShouldBeRequestedOnServerAndActive[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FI\u000a...[truncated 93517 chars]...\u000am performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[UserSession, OutgoingReplication]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] emitting 1 events com.ustadmobile.door.nodeevent.NodeEvent@3c295e67 \u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.927,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.impl.UstadAccountManagerTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] database build complete\u000aJun 30, 2025 4:43:14 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FI\u000a...[truncated 93517 chars]...\u000am performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[UserSession, OutgoingReplication]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_49817_.sqlite] emitting 1 events com.ustadmobile.door.nodeevent.NodeEvent@3c295e67 \u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:14.920Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.config.SupportedLanguagesConfigTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPreferredLanguageSupported_whenSelectFirstSupportedLocale_thenLanguageReturned[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.config.SupportedLanguagesConfigTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoPreferredLanguageSupported_whenSelectFirstSupportedLocale_thenFallbackIsReturned[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.config.SupportedLanguagesConfigTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoLanguageSettingPresent_whenDisplayLocaleQueried_thenFirstPreferredLangIsReturned[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.config.SupportedLanguagesConfigTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenLanguageSettingPresent_whenDisplayedLocaleQueried_thenSettingIsReturned[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.0,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.impl.config.SupportedLanguagesConfigTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:15.848Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.locale.CourseTerminologyStringsTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEmptyTerminologyStrings_whenKeyNotPresent_thenWillBeNull[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.impl.locale.CourseTerminologyStringsTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenTerminologyStrings_whenKeyPresent_thenWillOverride[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.002,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.impl.locale.CourseTerminologyStringsTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:15.849Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.io.ext.ConcatenatedEntryExtTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenConcatenatedEntry_whenSerializedAndDeserialized_thenSHouldBeTheSame[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.0,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.io.ext.ConcatenatedEntryExtTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:15.851Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.schedule.TestScheduleExt",
          "duration" : 0.002,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenSchedule_whenNextOccurenceCalled_thenShouldMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.002,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.schedule.TestScheduleExt",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:15.851Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.username.UsernameSuggestionUseCaseTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "suggestion_should_increment_until_unique[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 1151 chars]...\u000ae.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.username.UsernameSuggestionUseCaseTest",
          "duration" : 0.019,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "suggestion_should_append_1_when_taken_once[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 1151 chars]...\u000ae.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.username.UsernameSuggestionUseCaseTest",
          "duration" : 0.02,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "suggestion_should_return_input_when_unique[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 1151 chars]...\u000ae.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.061,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.username.UsernameSuggestionUseCaseTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 1151 chars]...\u000ae.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[]\u000aJun 30, 2025 4:43:15 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:15.854Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.TestUMFileUtil",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "testUMFileUtilJoin[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.TestUMFileUtil",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "testUMFileUtilResolveLink[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.0,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.util.TestUMFileUtil",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:15.915Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.UstadUrlComponentsTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUrlWithNoPathPrefixWithEmptyArgs_whenParsed_thenShouldInterpretCorrectly[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.UstadUrlComponentsTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUrlWithPathPrefixWithNoArgs_whenParsed_thenShouldInterpretCorrectly[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.UstadUrlComponentsTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUrlWithNoPathPrefixWithNoArgs_whenParsed_thenShouldInterpretCorrectly[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.UstadUrlComponentsTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUrlWithPathPrefixWithArgs_whenParsed_thenShouldInterpretCorrectly[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.001,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.util.UstadUrlComponentsTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:15.915Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.ext.LongExtTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenListOfLongs_whenConvertedToFromByteArray_thenWillBeEqual[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.0,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.util.ext.LongExtTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:15.916Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.ext.NavControllerExtTest",
          "duration" : 0.093,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenDeepLinkOnSameEndpointAsActiveAccount_whenNavigateToLinkCalledWithoutForceAccountSelect_thenShouldNavigateToLinkDirectly[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] emitting 1 e\u000a...[truncated 1939 chars]...\u000a.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\u000a\u0009at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.ext.NavControllerExtTest",
          "duration" : 0.016,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPlainViewUri_whenNavigateToLinkIsCalledWithForceAccountSelected_thenShouldNavigateToAccountList[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] emitting 1 e\u000a...[truncated 1939 chars]...\u000a.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\u000a\u0009at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.ext.NavControllerExtTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPlainViewUri_whenNavigateToLinkIsCalledWithoutForceAccountSelect_thenShouldNavigateToLinkDirectly[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] emitting 1 e\u000a...[truncated 1939 chars]...\u000a.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\u000a\u0009at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.ext.NavControllerExtTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenDeepLink_whenNoStoredAccountsAvailableOnSameEndpoint_thenShouldNavigateToLogin[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] emitting 1 e\u000a...[truncated 1939 chars]...\u000a.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\u000a\u0009at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.ext.NavControllerExtTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenDeepLinkOnSameEndpointAsActiveAccount_whenNavigateToLinkCalledWithForceAccountSelect_thenShouldNavigateToAccountList[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] emitting 1 e\u000a...[truncated 1939 chars]...\u000a.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\u000a\u0009at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.ext.NavControllerExtTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNonUstadLink_whenNavigateToLinkIsCalled_thenShouldCallOpenInBrowser[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] emitting 1 e\u000a...[truncated 1939 chars]...\u000a.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\u000a\u0009at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.ext.NavControllerExtTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenViewUriLink_whenUserCannotSelectServerAndNoAccountsAreStoredAndForceAccountSelectionEnabled_thenShouldNavigateToLogin[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] emitting 1 e\u000a...[truncated 1939 chars]...\u000a.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\u000a\u0009at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.ext.NavControllerExtTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenDeepLinkOnDifferentEndpointToActiveAccount_whenStoredAccountAvailableOnSameEndpoint_thenShouldNavigateToAccountListWithFilter[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] emitting 1 e\u000a...[truncated 1939 chars]...\u000a.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\u000a\u0009at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.115,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.util.ext.NavControllerExtTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [NodeEventJdbcImplListenerSqlite - jdbc:sqlite:build/tmp/localhost_localdomain_40913_.sqlite] emitting 1 e\u000a...[truncated 1939 chars]...\u000a.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\u000a\u0009at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:15.917Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.util.ext.ProcessExtTest",
          "duration" : 0.103,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenProcessStarted_whenWaitForInterrupted_thenWillDestroyProcess[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_36853_.sqlite] - useNewConnectionAsyncInternal connection #13 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:36853/UmAppDatabase/ - endpoint=http\u000a...[truncated 1677 chars]...\u000a.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\u000a\u0009at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.103,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.util.ext.ProcessExtTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_36853_.sqlite] - useNewConnectionAsyncInternal connection #13 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:36853/UmAppDatabase/ - endpoint=http\u000a...[truncated 1677 chars]...\u000a.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\u000a\u0009at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:16.032Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.LeavingReasonEditViewModelTest",
          "duration" : 0.043,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoExistingEntity_whenOnCreateAndHandleClickSaveCalled_thenShouldSaveToDatabase[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[LeavingReason]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.043,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.LeavingReasonEditViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[LeavingReason]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:16.135Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.account.addaccountselectneworexisting.AddAccountSelectNewOrExistingViewModelTest",
          "duration" : 0.027,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "whenClickExistingUser_presetLearningSpaceAndPersonalAccountsLearningSpaceUrlIsNull_shouldNavigateToLearningSpaceList[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 12587 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.account.addaccountselectneworexisting.AddAccountSelectNewOrExistingViewModelTest",
          "duration" : 0.023,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "whenClickNewUser_presetLearningSpaceAndPersonalAccountsLearningSpaceUrlIsNull_shouldNavigateToLearningSpaceList[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 12587 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.account.addaccountselectneworexisting.AddAccountSelectNewOrExistingViewModelTest",
          "duration" : 0.028,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "whenClickExistingUser_presetLearningSpaceIsNullAndPersonalAccountsLearningSpaceUrlNonNull_shouldNavigateToAddAccountSelectNewUserType[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 12587 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.account.addaccountselectneworexisting.AddAccountSelectNewOrExistingViewModelTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "whenClickNewUser_presetLearningSpaceIsNullAndPersonalAccountsLearningSpaceUrlNonNull_shouldNavigateToAddAccountSelectNewUserType[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 12587 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.1,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.account.addaccountselectneworexisting.AddAccountSelectNewOrExistingViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 12587 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:16.178Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.account.list.AccountListViewModelTest",
          "duration" : 0.054,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "whenClickAddAccount_presetLearningSpaceIsNonNullAndRegistrationNotAllowed_shouldNavigateToLogin[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core\u000a...[truncated 15755 chars]...\u000aask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.account.list.AccountListViewModelTest",
          "duration" : 0.048,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "whenClickAddAccount_presetLearningSpaceIsNonNullAndRegistrationAllowed_shouldNavigateToAddAccountSelect[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core\u000a...[truncated 15755 chars]...\u000aask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.102,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.account.list.AccountListViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core\u000a...[truncated 15755 chars]...\u000aask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:16.279Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazz.detail.ClazzDetailViewModelTest",
          "duration" : 0.072,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUserDoesnotHaveAttendancePermission_whenOnCreateCalled_thenAttendanceTabShouldNotBeVisible[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core\u000a...[truncated 17984 chars]...\u000astadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[CoursePermission]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazz.detail.ClazzDetailViewModelTest",
          "duration" : 0.067,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUserHasAttendancePermissions_whenOnCreateCalled_thenShouldMakeAttendanceTabVisible[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core\u000a...[truncated 17984 chars]...\u000astadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[CoursePermission]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.139,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazz.detail.ClazzDetailViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core\u000a...[truncated 17984 chars]...\u000astadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[CoursePermission]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:16.381Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazz.detailoverview.ClazzDetailOverviewViewModelTest",
          "duration" : 0.06,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenClazzExists_whenOnClickEditcalled_thenShouldGoToEdit[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4217 chars]...\u000a #2 : SQLite Change Tracker: Changed tables=[Person, PersonGroup, PersonGroupMember, ScopedGrant, UserSession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[CoursePermission]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazz.detailoverview.ClazzDetailOverviewViewModelTest",
          "duration" : 0.053,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenClazzExists_whenOnCreateCalled_thenClazzIsSetOnView[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4217 chars]...\u000a #2 : SQLite Change Tracker: Changed tables=[Person, PersonGroup, PersonGroupMember, ScopedGrant, UserSession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[CoursePermission]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.113,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazz.detailoverview.ClazzDetailOverviewViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 4217 chars]...\u000a #2 : SQLite Change Tracker: Changed tables=[Person, PersonGroup, PersonGroupMember, ScopedGrant, UserSession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[CoursePermission]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:16.521Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazz.edit.ClazzEditViewModelTest",
          "duration" : 0.154,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoExistingEntity_whenOnCreateAndHandleClickSaveCalled_thenShouldSaveToDatabase[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 6542 chars]...\u000anged tables=[Clazz, CoursePermission]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ClazzEditViewModel$onClickSave$invokeSuspend - onClickSave: transaction done\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ClazzEditViewModel$onClickSave$invokeSuspend - onClickSave: done\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.154,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazz.edit.ClazzEditViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 6542 chars]...\u000anged tables=[Clazz, CoursePermission]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ClazzEditViewModel$onClickSave$invokeSuspend - onClickSave: transaction done\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER ClazzEditViewModel$onClickSave$invokeSuspend - onClickSave: done\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:16.634Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazz.list.ClazzListViewModelTest",
          "duration" : 0.049,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenViewModelInBrowseMode_whenOnClickEntryCalled_thenShouldGoToDetailView[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 989 chars]...\u000aerAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazz.list.ClazzListViewModelTest",
          "duration" : 0.061,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenViewModelNotYetCreated_whenInitialized_thenShouldQueryDatabase[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 989 chars]...\u000aerAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.11,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazz.list.ClazzListViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 989 chars]...\u000aerAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:16.788Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.ClazzAssignmentIntegrationTest",
          "duration" : 1.478,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCourseAndAssignmentCreated_whenStudentSubmits_thenTeacherCanMarkAndStudentCanSeeMarkGiven[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - serverdb] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - serverdb] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - serverdb] - useNewConnectionAsyncInternal connection #1 : SQLi\u000a...[truncated 99607 chars]...\u000aines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 1.478,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazzassignment.ClazzAssignmentIntegrationTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - serverdb] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - serverdb] database build complete\u000aJun 30, 2025 4:43:16 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - serverdb] - useNewConnectionAsyncInternal connection #1 : SQLi\u000a...[truncated 99607 chars]...\u000aines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:16.899Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.076,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStudentWithNoSubmissionGivenYet_whenShown_thenShowNoSubmissionStatusAndAddFileTextWithComments[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.088,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCourseCommentsEnabled_whenShown_willShowExistingCourseCommentsAndAllowSubmissionOfNewCourseComment[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.073,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStudentWithPrivateCommentsEnabled_whenShown_thenShowPrivateComments[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.073,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStudentWithPrivateCommentsDisabled_whenShown_thenDoNotShowSubmitPrivateCommentButton[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.065,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUserNotAssignedInGroup_whenShown_displayErrorAndDontShowSubmitAndAddTextFileButtonsAndPrivateOff[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.075,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStudentWithSubmissionNotMarkedAndMultipleSubmissionPolicy_whenShown_thenShowAddFileTextWithSubmittedStatus[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.074,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStudentLoggedIn_whenShown_willShowExistingPrivateCommentsAndAllowSubmissionOfNewPrivateComment[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.065,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStudentWithSubmissionNotMarkedAndNoMultipleSubmission_whenShown_thenDontShowAddFileTextWithSubmittedStatus[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.065,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStudentWithSubmissionMarkedAndSingleSubmissionPolicy_whenShown_thenShowMarkedStatusWithNoAddTextFileButtons[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.097,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidAssignment_whenSubmitAssignmentUseCaseThrowsException_thenShouldShowErrorMessage[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.062,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUserIsNotStudent_whenShown_dontShowPrivateCommentsSubmissionStatusScoreAndAddFileText[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.065,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStudentWithSubmissionMarkedAndMultipleSubmissionPolicy_whenShown_thenShowMarkedStatusAndAddTextFileButtons[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
          "duration" : 0.068,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenStudentWithNoSubmissionAndSingleSubmitPolicy_whenClickSubmitSubmission_thenSubmitAndHideAddTextFile[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.946,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazzassignment.detailoverview.ClazzAssignmentDetailOverviewViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44867_.sqlite] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:18 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44867/UmAppDatabase/ - endpoint=http:\u000a...[truncated 67858 chars]...\u000alocalhost.localdomain:38275/UmAppDatabase/replication/sse?door-node=3858104813216295571%2F42c257fb-7470-4e48-b092-213c712cfdb0] error: java.io.IOException: other event source error . Attempting to reconnect after 2000ms\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:18.378Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.edit.ClazzAssignmentEditViewModelTest",
          "duration" : 0.047,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenExistingAssignmentMarkingTypeWasChanged_whenSubmissionMarkedBeforeSave_thenShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 50778 chars]...\u000aerAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.edit.ClazzAssignmentEditViewModelTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenAssignmentEditedWithDeadlineBeforeStartDate_whenClickedSave_showErrorMessage[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 50778 chars]...\u000aerAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.edit.ClazzAssignmentEditViewModelTest",
          "duration" : 0.021,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenAssignmentEditedWithGracePeriodBeforeDeadlineDate_whenClickedSave_showErrorMessage[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 50778 chars]...\u000aerAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.edit.ClazzAssignmentEditViewModelTest",
          "duration" : 0.021,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenAssignmentEditedWithTextAndFileDisabled_whenClickedSave_showErrorMessage[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 50778 chars]...\u000aerAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.edit.ClazzAssignmentEditViewModelTest",
          "duration" : 0.024,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoExistingEntity_whenOnCreateAndHandleClickSaveCalled_thenShouldReturnResult[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 50778 chars]...\u000aerAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.edit.ClazzAssignmentEditViewModelTest",
          "duration" : 0.028,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenAssignmentEditedWithPointsSetToZero_whenClickedSave_showErrorMessage[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 50778 chars]...\u000aerAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.edit.ClazzAssignmentEditViewModelTest",
          "duration" : 0.031,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenExistingAssignmentGroupUidWasChanged_whenSubmissionIsMadeBeforeSave_thenShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 50778 chars]...\u000aerAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.195,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazzassignment.edit.ClazzAssignmentEditViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 50778 chars]...\u000aerAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:19.324Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.peerreviewerallocationedit.PeerReviewerAllocationEditViewModelTest",
          "duration" : 0.069,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCourseWithSubmittersAndNoExistingAllocations_whenInitialized_thenShouldLoadSubmittersAndSetUid[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 10976 chars]...\u000a ClazzEnrolment, CoursePermission, SystemPermission]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER PeerReviewerAllocationEditViewModel$invokeSuspend - Number of submitters: 10\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.peerreviewerallocationedit.PeerReviewerAllocationEditViewModelTest",
          "duration" : 0.069,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCourseWithSubmittersAndExistingAllocations_whenInitialized_thenShouldLoadSubmittersAndSetAllocations[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 10976 chars]...\u000a ClazzEnrolment, CoursePermission, SystemPermission]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER PeerReviewerAllocationEditViewModel$invokeSuspend - Number of submitters: 10\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.138,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazzassignment.peerreviewerallocationedit.PeerReviewerAllocationEditViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 10976 chars]...\u000a ClazzEnrolment, CoursePermission, SystemPermission]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER PeerReviewerAllocationEditViewModel$invokeSuspend - Number of submitters: 10\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:19.520Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzassignment.submissionstab.ClazzAssignmentDetailSubmissionsTabViewModelTest",
          "duration" : 0.08,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenIndividualSubmissionAssignmentAndUserIsTeacher_whenInitiated_thenWillShowEnrolledStudentNamesAndSummaryTotals[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 4021 chars]...\u000a\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[ClazzEnrolment, CourseAssignmentSubmission, CourseAssignmentMark]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.08,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazzassignment.submissionstab.ClazzAssignmentDetailSubmissionsTabViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 4021 chars]...\u000a\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #4 : SQLite Change Tracker: Changed tables=[ClazzEnrolment, CourseAssignmentSubmission, CourseAssignmentMark]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:19.658Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzenrolment.clazzmemberlist.ClazzMemberListViewModelTest",
          "duration" : 0.071,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenActiveAccountHasAddPermissions_whenOnCreateCalled_thenShouldSetAddOptionsToBeVisible[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 8071 chars]...\u000apierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[Clazz, ClazzEnrolment, CoursePermission]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzenrolment.clazzmemberlist.ClazzMemberListViewModelTest",
          "duration" : 0.061,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenActiveUserDoesNotHaveAddPermissions_whenOnCreateCalled_thenShouldQueryDatabaseAndSetOnViewAndSetAddVisibleToFalse[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 8071 chars]...\u000apierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[Clazz, ClazzEnrolment, CoursePermission]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.132,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazzenrolment.clazzmemberlist.ClazzMemberListViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 8071 chars]...\u000apierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[Clazz, ClazzEnrolment, CoursePermission]\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:19.738Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzenrolment.edit.ClazzEnrolmentEditViewModelTest",
          "duration" : 0.07,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoExistingEntity_whenInitializedAndOnClickSaveCalled_thenShouldSaveToDatabase[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=2 remoteEndpoint=http://localhost:44939/UmAppDatabase/] : onError\u000ajava.net.ConnectException: Failed to connect to localhost/127.0.0.1:44939\u000a\u0009at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\u000a\u0009at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)\u000a\u0009at okhttp3.internal.connection.ExchangeFinder.findConnection\u000a...[truncated 9100 chars]...\u000austadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #10 : SQLite Change Tracker: Changed tables=[ClazzEnrolment]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzenrolment.edit.ClazzEnrolmentEditViewModelTest",
          "duration" : 0.07,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenExistingLeavingReason_whenOnCreateAndHandleClickSaveCalled_thenValuesShouldBeSetOnViewAndDatabaseShouldBeUpdated[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=2 remoteEndpoint=http://localhost:44939/UmAppDatabase/] : onError\u000ajava.net.ConnectException: Failed to connect to localhost/127.0.0.1:44939\u000a\u0009at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\u000a\u0009at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)\u000a\u0009at okhttp3.internal.connection.ExchangeFinder.findConnection\u000a...[truncated 9100 chars]...\u000austadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #10 : SQLite Change Tracker: Changed tables=[ClazzEnrolment]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.14,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazzenrolment.edit.ClazzEnrolmentEditViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:19 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=2 remoteEndpoint=http://localhost:44939/UmAppDatabase/] : onError\u000ajava.net.ConnectException: Failed to connect to localhost/127.0.0.1:44939\u000a\u0009at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\u000a\u0009at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)\u000a\u0009at okhttp3.internal.connection.ExchangeFinder.findConnection\u000a...[truncated 9100 chars]...\u000austadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #10 : SQLite Change Tracker: Changed tables=[ClazzEnrolment]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:19.871Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzlog.attendancelist.ClazzLogListAttendanceViewModelTest",
          "duration" : 0.063,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoExistingLogsAndUserHasRecordAttendancePermission_whenInitiated_thenOptionIsToCreateNew[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 9644 chars]...\u000atil.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[ClazzLog, Clazz, CoursePermission]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzlog.attendancelist.ClazzLogListAttendanceViewModelTest",
          "duration" : 0.059,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenExistingLogsAndUserHasRecordAttendancePermission_whenInitiated_thenOptionsIncludeCreateNewAndUpdate[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 9644 chars]...\u000atil.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[ClazzLog, Clazz, CoursePermission]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzlog.attendancelist.ClazzLogListAttendanceViewModelTest",
          "duration" : 0.062,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUserDoesNotHaveRecordAttendancePermission_whenInitiated_thenNoRecordAttendanceOptions[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 9644 chars]...\u000atil.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[ClazzLog, Clazz, CoursePermission]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.184,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazzlog.attendancelist.ClazzLogListAttendanceViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 9644 chars]...\u000atil.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[ClazzLog, Clazz, CoursePermission]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:20.012Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzlog.edit.ClazzLogEditAttendanceViewModelTest",
          "duration" : 0.181,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNewClazzLogSpecified_whenStatusUpdatedAndSaveClicked_thenShouldSaveIntoDatabase[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 26115 chars]...\u000ail.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[ClazzLog, ClazzLogAttendanceRecord]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzlog.edit.ClazzLogEditAttendanceViewModelTest",
          "duration" : 0.069,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEntityArgUidSpecified_whenCreated_thenShouldShowClazzLogAndEnrolledStudents[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 26115 chars]...\u000ail.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[ClazzLog, ClazzLogAttendanceRecord]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzlog.edit.ClazzLogEditAttendanceViewModelTest",
          "duration" : 0.064,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNewClazzLogSpecified_whenInitiated_thenShouldShowClazzLogAndEnrolledStudents[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 26115 chars]...\u000ail.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[ClazzLog, ClazzLogAttendanceRecord]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.clazzlog.edit.ClazzLogEditAttendanceViewModelTest",
          "duration" : 0.066,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNewClazzLogSpecifiedAndPreviousClazzLogExists_whenGoPreviousSelected_thenShouldShowPreviouslyRecordedLogs[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 26115 chars]...\u000ail.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[ClazzLog, ClazzLogAttendanceRecord]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.38,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.clazzlog.edit.ClazzLogEditAttendanceViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 26115 chars]...\u000ail.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[ClazzLog, ClazzLogAttendanceRecord]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:20.197Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.contententry.detailoverviewtab.ContentEntryDetailOverviewViewModelTest",
          "duration" : 0.041,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenContentEntryExists_whenLaunched_thenShouldShowContentEntry[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44387_.sqlite] - useNewConnectionAsyncInternal connection #17 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44387/UmAppDatabase/ - endpoint=http\u000a...[truncated 12047 chars]...\u000aines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.041,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.contententry.detailoverviewtab.ContentEntryDetailOverviewViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_44387_.sqlite] - useNewConnectionAsyncInternal connection #17 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:44387/UmAppDatabase/ - endpoint=http\u000a...[truncated 12047 chars]...\u000aines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:20.577Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.contententry.edit.ContentEntryEditViewModelTest",
          "duration" : 0.091,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenImportedMetadataArgProvided_whenSaved_thenShouldSaveToDatabaseAndCallImportContent[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 2947 chars]...\u000a #2 : SQLite Change Tracker: Changed tables=[Person, PersonGroup, PersonGroupMember, ScopedGrant, UserSession]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[SystemPermission]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.091,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.contententry.edit.ContentEntryEditViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnecti\u000a...[truncated 2947 chars]...\u000a #2 : SQLite Change Tracker: Changed tables=[Person, PersonGroup, PersonGroupMember, ScopedGrant, UserSession]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[SystemPermission]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:20.618Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.contententry.getmetadata.ContentEntryGetMetadataViewModelTest",
          "duration" : 0.057,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenMetadataExtractedSuccessfully_whenInitialized_thenShouldNavigateToContentEntryEdit[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20\u000a...[truncated 4202 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.contententry.getmetadata.ContentEntryGetMetadataViewModelTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenMetadataExtractionFails_whenInitialized_thenShouldShowErrorMessage[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20\u000a...[truncated 4202 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.079,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.contententry.getmetadata.ContentEntryGetMetadataViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20\u000a...[truncated 4202 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:20.710Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.contententry.importlink.ContentEntryImportLinkViewModelTest",
          "duration" : 0.059,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenExcpectedResultArg_whenUserEntersValidLink_thenWillReturnResult[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core\u000a...[truncated 10422 chars]...\u000a\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[Person, PersonGroup, PersonGroupMember, ScopedGrant, UserSession]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.contententry.importlink.ContentEntryImportLinkViewModelTest",
          "duration" : 0.054,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoExpectedResultArg_whenUserEntersInvalidLink_thenWillShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core\u000a...[truncated 10422 chars]...\u000a\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[Person, PersonGroup, PersonGroupMember, ScopedGrant, UserSession]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.contententry.importlink.ContentEntryImportLinkViewModelTest",
          "duration" : 0.053,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoExpectedResultArgs_whenUserEntersValidLinkAndClicksNext_thenWillGoToContentEntryEdit[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core\u000a...[truncated 10422 chars]...\u000a\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[Person, PersonGroup, PersonGroupMember, ScopedGrant, UserSession]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.166,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.contententry.importlink.ContentEntryImportLinkViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core\u000a...[truncated 10422 chars]...\u000a\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[Person, PersonGroup, PersonGroupMember, ScopedGrant, UserSession]\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:20.789Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.coursegroupset.detail.CourseGroupSetDetailViewModelTest",
          "duration" : 0.068,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenExistingCourseGroupSetWithMembers_whenInitiated_thenWillShowMembersListAndEditButton[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 3434 chars]...\u000aHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[Person, Clazz, ClazzEnrolment, CourseGroupSet, CourseGroupMember, CoursePermission, SystemPermission]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.068,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.coursegroupset.detail.CourseGroupSetDetailViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:20 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 3434 chars]...\u000aHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[Person, Clazz, ClazzEnrolment, CourseGroupSet, CourseGroupMember, CoursePermission, SystemPermission]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:20.955Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.coursegroupset.edit.CourseGroupSetEditViewModelTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenExistingGroupSet_whenInitiatedUpdatedAndSaved_thenWillShowExistingAssignmentsAndUpdateToDatabase[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 3261 chars]...\u000ae Tracker: Changed tables=[Person, Clazz, ClazzEnrolment, CoursePermission, SystemPermission]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #7 : SQLite Change Tracker: Changed tables=[CourseGroupSet, CourseGroupMember]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.coursegroupset.edit.CourseGroupSetEditViewModelTest",
          "duration" : 0.057,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNewGroupSetBeingCreated_whenInitiatedAssignedAndSaveClicked_thenShouldShowEnrolledStudentNamesAndDefaultGroupNumAndSaveToDatabase[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 3261 chars]...\u000ae Tracker: Changed tables=[Person, Clazz, ClazzEnrolment, CoursePermission, SystemPermission]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #7 : SQLite Change Tracker: Changed tables=[CourseGroupSet, CourseGroupMember]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.058,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.coursegroupset.edit.CourseGroupSetEditViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 3261 chars]...\u000ae Tracker: Changed tables=[Person, Clazz, ClazzEnrolment, CoursePermission, SystemPermission]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #7 : SQLite Change Tracker: Changed tables=[CourseGroupSet, CourseGroupMember]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:21.023Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.coursegroupset.list.CourseGroupSetListViewModelTest",
          "duration" : 0.062,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenExistingCourseGroupSetAndUserHasPermissionToAdd_whenInitiated_thenWillShowExistingGroupSetAndAddOption[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 3555 chars]...\u000azz, CourseGroupSet, CoursePermission]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST CourseGroupSetListViewModel$invoke - CourseGroupSetList: set showAddItem visible = false\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.062,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.coursegroupset.list.CourseGroupSetListViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build\u000a...[truncated 3555 chars]...\u000azz, CourseGroupSet, CoursePermission]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST CourseGroupSetListViewModel$invoke - CourseGroupSetList: set showAddItem visible = false\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:21.081Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.courseterminology.edit.CourseTerminologyEditViewModelTest",
          "duration" : 0.04,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenExistingCourseTerminology_whenOnCreateAndHandleClickSaveCalled_thenValuesShouldBeSetOnViewAndDatabaseShouldBeUpdated[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 3875 chars]...\u000a:memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[CourseTerminology]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.courseterminology.edit.CourseTerminologyEditViewModelTest",
          "duration" : 0.03,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoExistingEntity_whenOnCreateAndHandleClickSaveCalled_thenShouldSaveToDatabase[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 3875 chars]...\u000a:memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[CourseTerminology]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.07,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.courseterminology.edit.CourseTerminologyEditViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 3875 chars]...\u000a:memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[CourseTerminology]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:21.143Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.courseterminology.list.CourseTerminologyListViewModelTest",
          "duration" : 0.058,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPresenterNotYetCreated_whenOnCreateCalled_thenShouldQueryDatabaseAndSetOnView[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=2571399812394664079 remoteEndpoint=http://localhost.localdomain:42539/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmobile.door.sse.DoorEventSource$eventSourceListener$1.onFailure(DoorEventSource.kt:44)\u000a\u0009at okhttp3.internal.sse.RealEventSource.processResponse(RealEventSource.kt:52)\u000a\u0009at okhttp3.internal.sse.RealEventSource.\u000a...[truncated 5974 chars]...\u000a:memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[CourseTerminology]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.courseterminology.list.CourseTerminologyListViewModelTest",
          "duration" : 0.033,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPresenterCreatedInPickMode_whenOnClickEntryCalled_thenShouldReturnResult[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=2571399812394664079 remoteEndpoint=http://localhost.localdomain:42539/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmobile.door.sse.DoorEventSource$eventSourceListener$1.onFailure(DoorEventSource.kt:44)\u000a\u0009at okhttp3.internal.sse.RealEventSource.processResponse(RealEventSource.kt:52)\u000a\u0009at okhttp3.internal.sse.RealEventSource.\u000a...[truncated 5974 chars]...\u000a:memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[CourseTerminology]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.091,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.courseterminology.list.CourseTerminologyListViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=2571399812394664079 remoteEndpoint=http://localhost.localdomain:42539/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmobile.door.sse.DoorEventSource$eventSourceListener$1.onFailure(DoorEventSource.kt:44)\u000a\u0009at okhttp3.internal.sse.RealEventSource.processResponse(RealEventSource.kt:52)\u000a\u0009at okhttp3.internal.sse.RealEventSource.\u000a...[truncated 5974 chars]...\u000a:memory:] - useNewConnectionAsyncInternal connection #1 : SQLite Change Tracker: Changed tables=[UserSession]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #2 : SQLite Change Tracker: Changed tables=[CourseTerminology]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:21.214Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.login.LoginViewModelTest",
          "duration" : 0.009,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidUsernameAndPassword_whenFromDestinationArgumentIsProvidedAndHandleLoginClicked_shouldGoToNextScreenAndInvalidateSync[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER LoginViewModel$goToNextDestAfterLoginOrGuestSelected - LoginPresenter: go to next destination: nextDummyDestination\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=3858104813216295571 remoteEndpoint=http://localhost.localdomain:38275/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmo\u000a...[truncated 29658 chars]...\u000aa.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)\u000a\u0009at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)\u000a\u0009at java.base/java.net.Socket.connect(Socket.java:633)\u000a\u0009at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\u000a\u0009at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\u000a\u0009... 18 more\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.login.LoginViewModelTest",
          "duration" : 0.042,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenGuestConnectionAllowedOrNot_whenCreated_thenGuestButtonVisibiltyShouldMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER LoginViewModel$goToNextDestAfterLoginOrGuestSelected - LoginPresenter: go to next destination: nextDummyDestination\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=3858104813216295571 remoteEndpoint=http://localhost.localdomain:38275/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmo\u000a...[truncated 29658 chars]...\u000aa.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)\u000a\u0009at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)\u000a\u0009at java.base/java.net.Socket.connect(Socket.java:633)\u000a\u0009at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\u000a\u0009at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\u000a\u0009... 18 more\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.login.LoginViewModelTest",
          "duration" : 0.025,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEmptyUsernameAndPassword_whenLoginCalled_thenShouldShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER LoginViewModel$goToNextDestAfterLoginOrGuestSelected - LoginPresenter: go to next destination: nextDummyDestination\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=3858104813216295571 remoteEndpoint=http://localhost.localdomain:38275/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmo\u000a...[truncated 29658 chars]...\u000aa.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)\u000a\u0009at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)\u000a\u0009at java.base/java.net.Socket.connect(Socket.java:633)\u000a\u0009at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\u000a\u0009at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\u000a\u0009... 18 more\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.login.LoginViewModelTest",
          "duration" : 0.004,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenInvalidUsernameAndPassword_whenHandleLoginCalled_thenShouldCallSetErrorMessage[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER LoginViewModel$goToNextDestAfterLoginOrGuestSelected - LoginPresenter: go to next destination: nextDummyDestination\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=3858104813216295571 remoteEndpoint=http://localhost.localdomain:38275/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmo\u000a...[truncated 29658 chars]...\u000aa.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)\u000a\u0009at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)\u000a\u0009at java.base/java.net.Socket.connect(Socket.java:633)\u000a\u0009at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\u000a\u0009at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\u000a\u0009... 18 more\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.login.LoginViewModelTest",
          "duration" : 0.003,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUsernameOrPasswordContainsSpacePadding_whenLoginCalled_thenShouldTrimSpace[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER LoginViewModel$goToNextDestAfterLoginOrGuestSelected - LoginPresenter: go to next destination: nextDummyDestination\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=3858104813216295571 remoteEndpoint=http://localhost.localdomain:38275/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmo\u000a...[truncated 29658 chars]...\u000aa.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)\u000a\u0009at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)\u000a\u0009at java.base/java.net.Socket.connect(Socket.java:633)\u000a\u0009at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\u000a\u0009at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\u000a\u0009... 18 more\u000a\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.login.LoginViewModelTest",
          "duration" : 0.004,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenServerOffline_whenCreated_thenShouldShowErrorMessage[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER LoginViewModel$goToNextDestAfterLoginOrGuestSelected - LoginPresenter: go to next destination: nextDummyDestination\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=3858104813216295571 remoteEndpoint=http://localhost.localdomain:38275/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmo\u000a...[truncated 29658 chars]...\u000aa.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)\u000a\u0009at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)\u000a\u0009at java.base/java.net.Socket.connect(Socket.java:633)\u000a\u0009at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\u000a\u0009at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\u000a\u0009... 18 more\u000a\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.087,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.login.LoginViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER LoginViewModel$goToNextDestAfterLoginOrGuestSelected - LoginPresenter: go to next destination: nextDummyDestination\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=3858104813216295571 remoteEndpoint=http://localhost.localdomain:38275/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmo\u000a...[truncated 29658 chars]...\u000aa.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547)\u000a\u0009at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)\u000a\u0009at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)\u000a\u0009at java.base/java.net.Socket.connect(Socket.java:633)\u000a\u0009at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\u000a\u0009at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\u000a\u0009... 18 more\u000a\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:21.306Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.parentalconsentmanagement.ParentalConsentManagementViewModelTest",
          "duration" : 0.075,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPersonParentJoinHasNoParentYet_whenOpened_thenShouldSetParentAndApprovalStatus[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 20268 chars]...\u000areadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\u000a\u0009at java.base/java.lang.Thread.run(Thread.java:840)\u000a\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #12 : SQLite Change Tracker: Changed tables=[PersonParentJoin]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.075,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.parentalconsentmanagement.ParentalConsentManagementViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 20268 chars]...\u000areadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\u000a\u0009at java.base/java.lang.Thread.run(Thread.java:840)\u000a\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #12 : SQLite Change Tracker: Changed tables=[PersonParentJoin]\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:21.393Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.detail.PersonDetailViewModelTest",
          "duration" : 0.063,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPersonDetails_whenOpenedActivePersonDetailPersonAndCanManageAccount_thenChangePasswordShouldBeShown[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 37059 chars]...\u000ale.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[Person, SystemPermission]\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.detail.PersonDetailViewModelTest",
          "duration" : 0.059,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenActiveUserIsParent_whenOpenChildProfile_thenShouldShowManageParentalConsent[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 37059 chars]...\u000ale.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[Person, SystemPermission]\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.detail.PersonDetailViewModelTest",
          "duration" : 0.31,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenActiveUserIsNotParent_whenOpenChildProfile_thenShouldShowManageParentalConsent[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 37059 chars]...\u000ale.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[Person, SystemPermission]\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.detail.PersonDetailViewModelTest",
          "duration" : 0.068,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPersonDetailsAndAdminLogged_whenPersonUsernameIsNullAndCanManageAccount_thenCreateAccountShouldBeShown[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 37059 chars]...\u000ale.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[Person, SystemPermission]\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.detail.PersonDetailViewModelTest",
          "duration" : 0.062,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPersonDetails_whenPersonUsernameIsNullAndCantManageAccount_thenCreateAccountShouldBeHidden[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 37059 chars]...\u000ale.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[Person, SystemPermission]\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.detail.PersonDetailViewModelTest",
          "duration" : 0.066,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPersonDetailsAndAdminLogged_whenPersonUsernameIsNotNullAndCanManageAccount_thenChangePasswordShouldBeShown[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 37059 chars]...\u000ale.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[Person, SystemPermission]\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.628,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.person.detail.PersonDetailViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:21 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_locald\u000a...[truncated 37059 chars]...\u000ale.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #3 : SQLite Change Tracker: Changed tables=[Person, SystemPermission]\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:21.468Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.edit.PersonEditViewModelTest",
          "duration" : 0.026,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPresenterCreatedInRegistrationMode_whenDateOfBirthNotFilledClickSave_shouldShowErrors[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22\u000a...[truncated 28045 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.edit.PersonEditViewModelTest",
          "duration" : 0.042,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenInvalidPhoneNumberIncluded_whenSaved_shouldValidatePhoneNumberAndShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22\u000a...[truncated 28045 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.edit.PersonEditViewModelTest",
          "duration" : 0.05,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidPhoneNumberIncluded_whenSaved_shouldValidatePhoneNumberAndShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22\u000a...[truncated 28045 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.edit.PersonEditViewModelTest",
          "duration" : 0.05,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPresenterCreatedInNonRegistrationMode_whenFormFilledAndClickSave_shouldSaveAPersonInDb[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22\u000a...[truncated 28045 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.edit.PersonEditViewModelTest",
          "duration" : 0.023,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPresenterCreatedInRegisterMinorMode_whenFormFilledAndClickSave_thenShouldGoToWaitForParentScreen[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22\u000a...[truncated 28045 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.edit.PersonEditViewModelTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPresenterCreatedInRegistrationMode_whenUsernameAndPasswordNotFilledClickSave_shouldShowErrors[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22\u000a...[truncated 28045 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.edit.PersonEditViewModelTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPresenterCreatedInRegisterMinorMode_whenNoParentEmailGiven_thenShouldShowFieldRequiredError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22\u000a...[truncated 28045 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.edit.PersonEditViewModelTest",
          "duration" : 0.023,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPresenterCreatedInRegistrationMode_whenFormFilledAndClickSave_shouldRegisterAPerson[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22\u000a...[truncated 28045 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.258,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.person.edit.PersonEditViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000aJun 30, 2025 4:43:22\u000a...[truncated 28045 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:22.096Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.registerageredirect.RegisterAgeRedirectViewModelTest",
          "duration" : 0.023,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenDateOfBirthNotSet_whenOnClickNextCalled_thenShouldShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_38275_.sqlite] - useNewConnectionAsyncInternal connection #8 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:38275/UmAppDatabase/ - endpoint=http:\u000a...[truncated 14276 chars]...\u000aines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.registerageredirect.RegisterAgeRedirectViewModelTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenDateOfBirthIsNotAMinor_whenOnClickNextCalled_thenShouldGoToTerms[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_38275_.sqlite] - useNewConnectionAsyncInternal connection #8 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:38275/UmAppDatabase/ - endpoint=http:\u000a...[truncated 14276 chars]...\u000aines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.person.registerageredirect.RegisterAgeRedirectViewModelTest",
          "duration" : 0.021,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenDateOfBirthTodayOrInFuture_whenOnClickNextCalled_thenShouldShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_38275_.sqlite] - useNewConnectionAsyncInternal connection #8 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:38275/UmAppDatabase/ - endpoint=http:\u000a...[truncated 14276 chars]...\u000aines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.066,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.person.registerageredirect.RegisterAgeRedirectViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - [RoomJdbcImplHelper - jdbc:sqlite:build/tmp/localhost_localdomain_38275_.sqlite] - useNewConnectionAsyncInternal connection #8 : SQLite Change Tracker: Changed tables=[PendingRepositorySession]\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [DoorRepositoryReplicationClient - http://localhost.localdomain:38275/UmAppDatabase/ - endpoint=http:\u000a...[truncated 14276 chars]...\u000aines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:22.355Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.schedule.edit.ScheduleEditViewModelTest",
          "duration" : 0.023,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidSchedule_whenClickSave_thenShouldFinishWithResult[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core\u000a...[truncated 28654 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.schedule.edit.ScheduleEditViewModelTest",
          "duration" : 0.021,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenScheduleStartAfterEndTime_whenClickSave_thenShouldShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core\u000a...[truncated 28654 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.schedule.edit.ScheduleEditViewModelTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenScheduleHasNoEndTime_whenClickSave_thenShouldShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core\u000a...[truncated 28654 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.schedule.edit.ScheduleEditViewModelTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenScheduleHasNoStartTime_whenClickSave_thenShouldShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core\u000a...[truncated 28654 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.089,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.schedule.edit.ScheduleEditViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core\u000a...[truncated 28654 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:22.422Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.siteenterlink.LearningSpaceEnterLinkViewModelTest",
          "duration" : 0.027,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenInvalidLinkEntered_whenOnClickNextCalled_thenShouldShowError[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core\u000a...[truncated 12688 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.siteenterlink.LearningSpaceEnterLinkViewModelTest",
          "duration" : 0.029,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidLinkEntered_whenOnClickNextCalled_thenShouldNavigateToNextScreen[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core\u000a...[truncated 12688 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.056,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.siteenterlink.LearningSpaceEnterLinkViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core\u000a...[truncated 12688 chars]...\u000aeScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:22.512Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.videocontent.VideoContentViewModelTest",
          "duration" : 1.081,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenVideoPlayStarted_whenCleared_thenShouldRecordStatement[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core\u000a...[truncated 63070 chars]...\u000aduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:23 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onActiveChanged - ContentUsageStatementRecorder: active=false\u000aJun 30, 2025 4:43:23 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 1.081,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.videocontent.VideoContentViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [RoomJdbcImplHelper - jdbc:sqlite::memory:] - useNewConnectionAsyncInternal connection #1  Attempting to rollback transaction #1\u000aJun 30, 2025 4:43:22 PM com.ustadmobile.core\u000a...[truncated 63070 chars]...\u000aduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)\u000a\u0009at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)\u000a\u000aJun 30, 2025 4:43:23 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST NonInteractiveContentXapiStatementRecorder$onActiveChanged - ContentUsageStatementRecorder: active=false\u000aJun 30, 2025 4:43:23 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:22.568Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.core.viewmodel.xapicontent.XapiContentViewModelTest",
          "duration" : 0.168,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidXapiUrl_whenStarted_thenShouldSetContentUrl[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:43:23 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=3647728606838534451 remoteEndpoint=http://localhost.localdomain:59421/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmobile.door.sse.DoorEventSource$eventSourceListener$1.onFailure(DoorEventSource.kt:44)\u000a\u0009at okhttp3.internal.sse.RealEventSource.processResponse(RealEventSource.kt:52)\u000a\u0009at okhttp3.internal.sse.RealEventSource.\u000a...[truncated 8676 chars]...\u000attp%3A%2F%2Flocalhost%2Fe%2Fendpoint%2Fxapi&auth=Basic+MDpudWxs&actor=%7B%22name%22%3Anull%2C%22mbox%22%3Anull%2C%22mbox_sha1sum%22%3Anull%2C%22openid%22%3Anull%2C%22objectType%22%3A%22Agent%22%2C%22account%22%3A%7B%22homePage%22%3A%22http%3A%2F%2Flocalhost%2F%22%2C%22name%22%3A%22admin%22%7D%7D&registration=00000000-0000-0000-0000-000000000000&activity_id=\u000aJun 30, 2025 4:43:23 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.168,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.core.viewmodel.xapicontent.XapiContentViewModelTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:43:23 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aWARNING: WARNING DoorLog - [NodeEventSseClient localNodeId=3647728606838534451 remoteEndpoint=http://localhost.localdomain:59421/UmAppDatabase/] : onError\u000ajava.io.IOException: other event source error\u000a\u0009at com.ustadmobile.door.sse.DoorEventSource$eventSourceListener$1.onFailure(DoorEventSource.kt:44)\u000a\u0009at okhttp3.internal.sse.RealEventSource.processResponse(RealEventSource.kt:52)\u000a\u0009at okhttp3.internal.sse.RealEventSource.\u000a...[truncated 8676 chars]...\u000attp%3A%2F%2Flocalhost%2Fe%2Fendpoint%2Fxapi&auth=Basic+MDpudWxs&actor=%7B%22name%22%3Anull%2C%22mbox%22%3Anull%2C%22mbox_sha1sum%22%3Anull%2C%22openid%22%3Anull%2C%22objectType%22%3A%22Agent%22%2C%22account%22%3A%7B%22homePage%22%3A%22http%3A%2F%2Flocalhost%2F%22%2C%22name%22%3A%22admin%22%7D%7D&registration=00000000-0000-0000-0000-000000000000&activity_id=\u000aJun 30, 2025 4:43:23 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINE: FINER DoorLog - Closed HikariDataSource connection pool\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:43:23.650Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.447,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenResponseIsUpdated_whenRetrieved_thenLatestResponseWillBeReturned[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.033,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEmptyFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHit[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.015,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEntryNotStored_whenRetrieved_thenWillReturnNull[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.077,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEntryNotLocked_whenLockAdded_thenWillBeMovedToPersistentDir[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.016,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNonCompressableFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndNotCompressed[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.014,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEntryLocked_whenLockRemoved_thenWillBeMovedToCacheDir[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.013,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenResponseIsNotUpdated_whenStored_thenWillUpdateLastAccessAndValidationTime[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.023,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCompressableFileStored_whenRequestMadeWithoutAcceptEncoding_thenWillBeRetrievedAsCacheHitAndBeCompressed[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.014,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCompressableFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndBeCompressed[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.011,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileCachedAndStored_whenPartialRequestMadeIfRangeNotMatched_thenWillReceiveFullResponse[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.013,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenLockedEntryStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndSavedInPersistentPath[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheJvmTest",
          "duration" : 0.012,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenFileCachedAndStored_whenPartialRequestMade_thenWillReceivePartialData[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 0.691,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.libcache.UstadCacheJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "SLF4J: No SLF4J providers were found.\u000aSLF4J: Defaulting to no-operation (NOP) logger implementation\u000aSLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:38:30.568Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.UstadCacheTrimmerTest",
          "duration" : 0.038,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEntriesExceedSize_whenTrimRun_thenWillEvictRequiredEntries[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.038,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.libcache.UstadCacheTrimmerTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:38:31.261Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessCheckerImplTest",
          "duration" : 0.002,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenResponseWithinMaxAge_whenChecked_isFresh[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessCheckerImplTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenResponseHasMustRevalidate_whenChecked_isStale[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessCheckerImplTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenResponseIsImmutable_whenChecked_isFresh[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessCheckerImplTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenRequestHasNoCacheDirective_whenChecked_isStale[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.007,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessCheckerImplTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:38:31.301Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityCheckerImplTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPartialResponse_whenChecked_notCacheable[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityCheckerImplTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "given200OkResponse_whenChecked_isCacheable[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityCheckerImplTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenNoStoreInHeader_whenChecked_notCacheable[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.002,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityCheckerImplTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:38:31.310Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.io.RangeInputStreamTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidRange_whenReadInSameIncrementAsBuffer_thenWillMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.io.RangeInputStreamTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidRange_whenRead_thenWillMatch[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.002,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.libcache.io.RangeInputStreamTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:38:31.314Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.okhttp.UstadCacheInterceptorTest",
          "duration" : 1.422,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenImmutableEntryWasCached_whenRequested_thenCacheWillHit[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localh\u000a...[truncated 19532 chars]...\u000aile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localhost.localdomain:38423/testfile1.png\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.okhttp.UstadCacheInterceptorTest",
          "duration" : 0.028,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCompressableEntryNotYetCachedAlreadyEncoded_whenRequested_thenWillRespondAndCacheIt[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localh\u000a...[truncated 19532 chars]...\u000aile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localhost.localdomain:38423/testfile1.png\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.okhttp.UstadCacheInterceptorTest",
          "duration" : 0.02,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenResponseHasNoStoreHeader_whenRequested_thenIsNotStored[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localh\u000a...[truncated 19532 chars]...\u000aile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localhost.localdomain:38423/testfile1.png\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.okhttp.UstadCacheInterceptorTest",
          "duration" : 0.042,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenResponsePartiallyStored_whenRequestedWithResumeUuid_thenWillResume[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localh\u000a...[truncated 19532 chars]...\u000aile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localhost.localdomain:38423/testfile1.png\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.okhttp.UstadCacheInterceptorTest",
          "duration" : 0.018,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEntryNotYetCached_whenRequested_thenWillRespondAndCacheIt[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localh\u000a...[truncated 19532 chars]...\u000aile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localhost.localdomain:38423/testfile1.png\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.okhttp.UstadCacheInterceptorTest",
          "duration" : 0.028,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEntryIsStaleAndValidatable_whenRequested_thenIsValidated[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localh\u000a...[truncated 19532 chars]...\u000aile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localhost.localdomain:38423/testfile1.png\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.okhttp.UstadCacheInterceptorTest",
          "duration" : 0.013,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCompressableEntryNotYetCachedNotEncoded_whenRequested_thenWillRespondAndCacheIt[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localh\u000a...[truncated 19532 chars]...\u000aile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localhost.localdomain:38423/testfile1.png\u000a",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.okhttp.UstadCacheInterceptorTest",
          "duration" : 0.006,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenRequestNotStorable_whenRequested_thenIsNotStored[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "Jun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localh\u000a...[truncated 19532 chars]...\u000aile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localhost.localdomain:38423/testfile1.png\u000a",
          "stdout" : ""
        }
      ],
      "duration" : 1.578,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.libcache.okhttp.UstadCacheInterceptorTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "Jun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localh\u000a...[truncated 19532 chars]...\u000aile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aINFO: INFO DoorLog - [DatabaseBuilder.build - jdbc:sqlite::memory:] database build complete\u000aJun 30, 2025 4:38:32 PM com.ustadmobile.core.util.NapierAntilogJvm performLog\u000aFINEST: FINEST UstadCache - OKHttp-CacheInterceptor:  intercept: GET http://localhost.localdomain:38423/testfile1.png\u000a",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:38:31.321Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.partial.ContentRangeTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenRangeWithStartToEnd_whenParsed_thenMatches[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.partial.ContentRangeTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenRangeWhereLastByteAfterTotalBytes_whenParsed_thenThrowsRangeNotSatisfiableException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.partial.ContentRangeTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenRangeWhereStartIsAfterLast_whenParsed_thenThrowsRangeNotSatisfiableException[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.partial.ContentRangeTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenBlankStart_whenParsed_thenMatches[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.libcache.partial.ContentRangeTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidRange_whenParsed_thenMatches[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.001,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.libcache.partial.ContentRangeTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:38:32.902Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestAcceptEncodingUtil",
          "duration" : 0.011,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEncodingNotSupported_whenIsEncodingAcceptableCalled_thenShouldBeFalse[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestAcceptEncodingUtil",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEncodingSupportedByStar_whenIsEncodingAcceptableCalled_thenShouldBeTrue[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestAcceptEncodingUtil",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEncodingDirectlySupported_whenIsEncodingAcceptableCalled_thenShouldBeTrue[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestAcceptEncodingUtil",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEncodingWithQualityValue_whenParsed_thenShouldBeInMap[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestAcceptEncodingUtil",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenEncodingWithoutQualityValue_whenParsed_thenShouldBeInMap[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.014,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.lib.util.TestAcceptEncodingUtil",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:37:06.016Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestRangeUtil",
          "duration" : 0.025,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenZeroToEndRangeHeader_whenParseRangeRequestHeaderCalled_thenShouldReturnWholeFileRange[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestRangeUtil",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenUnsatisfiableRangeHeader_whenParseRangeRequestHeaderCalled_tehnShouldReturnRangeNotSatisfiable[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestRangeUtil",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidRangeHeader_whenParseRangeRequestHeaderCalled_thenShouldReturnRange[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestRangeUtil",
          "duration" : 0.004,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenInvalidHeader_whenParseRangeRequestCalled_thenShouldReturnBadRequest[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.03,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.lib.util.TestRangeUtil",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:37:06.032Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestSysPathUtil",
          "duration" : 0.015,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCommandInPathOnWindows_whenCommandInPathCalled_thenReturnsFile[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestSysPathUtil",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCommandNotInPathOnWindows_whenCommandInPathCalled_thenReturnsNull[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestSysPathUtil",
          "duration" : 0.003,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCommandNotInPathOnUnix_whenFindCommandInPathCalled_thenReturnNull[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.lib.util.TestSysPathUtil",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenCommandInPathOnUnix_whenFindCommandInPathCalled_thenReturnsFile[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.02,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.lib.util.TestSysPathUtil",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:37:06.073Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.xxhashkmp.commonjvmimpl.XXHashJvmTest",
          "duration" : 0.022,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenString_whenInvoked_willHash[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : "a96086d5c2cb52a9\u000a"
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.xxhashkmp.commonjvmimpl.XXHashJvmTest",
          "duration" : 0.008,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenLongArray_whenInvoked_thenWillHash[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : "a96086d5c2cb52a9\u000a"
        }
      ],
      "duration" : 0.03,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.xxhashkmp.commonjvmimpl.XXHashJvmTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "a96086d5c2cb52a9\u000a",
      "timestamp" : "2025-06-30T14:37:06.517Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.xxhashkmp.jsimpl.XXHashJsTest",
          "duration" : 0.001,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "test[js, browser, ChromeHeadless138.0.0.0, Linuxx86_64]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.xxhashkmp.jsimpl.XXHashJsTest",
          "duration" : 0.0,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenLongArray_whenInvoked_thenWillHash[js, browser, ChromeHeadless138.0.0.0, Linuxx86_64]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.001,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.xxhashkmp.jsimpl.XXHashJsTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:37:19.796Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.sharedse.impl.http.IHTTPSessionExtTest",
          "duration" : 0.464,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenPutRequestWithBody_whenParseRequestBodyCalled_thenShouldReturnContent[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : "16:42:45,193 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.6\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - No custom configurators were discovered as a service.\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - Constructed con\u000a...[truncated 3708 chars]...\u000a level of logger [io.netty] to INFO\u000a16:42:45,298 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@24b6b8f6 - End of configuration.\u000a16:42:45,298 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@72cf2de5 - Registering current configuration as safe fallback point\u000a16:42:45,298 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 97 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY\u000a\u000a"
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.sharedse.impl.http.IHTTPSessionExtTest",
          "duration" : 0.017,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenLargerPostRequestWithBody_whenParseRequestCalled_thenShouldReturnContent[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : "16:42:45,193 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.6\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - No custom configurators were discovered as a service.\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - Constructed con\u000a...[truncated 3708 chars]...\u000a level of logger [io.netty] to INFO\u000a16:42:45,298 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@24b6b8f6 - End of configuration.\u000a16:42:45,298 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@72cf2de5 - Registering current configuration as safe fallback point\u000a16:42:45,298 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 97 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY\u000a\u000a"
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.sharedse.impl.http.IHTTPSessionExtTest",
          "duration" : 0.015,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenSmallPostRequestWithBody_whenParseRequestCalled_thenShouldReturnContent[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : "16:42:45,193 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.6\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - No custom configurators were discovered as a service.\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - Constructed con\u000a...[truncated 3708 chars]...\u000a level of logger [io.netty] to INFO\u000a16:42:45,298 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@24b6b8f6 - End of configuration.\u000a16:42:45,298 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@72cf2de5 - Registering current configuration as safe fallback point\u000a16:42:45,298 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 97 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY\u000a\u000a"
        }
      ],
      "duration" : 0.496,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.sharedse.impl.http.IHTTPSessionExtTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "16:42:45,193 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.6\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - No custom configurators were discovered as a service.\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator\u000a16:42:45,194 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - Constructed con\u000a...[truncated 3708 chars]...\u000a level of logger [io.netty] to INFO\u000a16:42:45,298 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@24b6b8f6 - End of configuration.\u000a16:42:45,298 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@72cf2de5 - Registering current configuration as safe fallback point\u000a16:42:45,298 |-INFO in ch.qos.logback.classic.util.ContextInitializer@5af3a0f - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 97 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY\u000a\u000a",
      "timestamp" : "2025-06-30T14:42:45.126Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.sharedse.impl.http.TestHtmlFilterSerializer",
          "duration" : 0.045,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenXhtmlWithEntities_whenFiltered_thenShouldParseSuccessfully[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        },
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.sharedse.impl.http.TestHtmlFilterSerializer",
          "duration" : 0.008,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenValidXhtmlPage_whenFiltered_thenShouldParseSuccessfully[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.054,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.sharedse.impl.http.TestHtmlFilterSerializer",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:45.624Z"
    },
    {
      "cases" : [
        {
          "testActions" : [
            
          ],
          "age" : 0,
          "className" : "com.ustadmobile.sharedse.util.UmZipUtilTest",
          "duration" : 0.053,
          "errorDetails" : None,
          "errorStackTrace" : None,
          "failedSince" : 0,
          "name" : "givenAnEpubFile_whenUnzipped_thenAllFilesShouldBeAvailable[jvm]",
          "properties" : {
            
          },
          "skipped" : False,
          "skippedMessage" : None,
          "status" : "PASSED",
          "stderr" : "",
          "stdout" : ""
        }
      ],
      "duration" : 0.053,
      "enclosingBlockNames" : [
        
      ],
      "enclosingBlocks" : [
        
      ],
      "id" : None,
      "name" : "com.ustadmobile.sharedse.util.UmZipUtilTest",
      "nodeId" : None,
      "properties" : {
        
      },
      "stderr" : "",
      "stdout" : "",
      "timestamp" : "2025-06-30T14:42:45.679Z"
    }
  ]
}