{
  "ticket": "U36 #73",
  "status": "passed",
  "startedAt": "2026-10-28T11:59:53.195284+08:00",
  "finishedAt": "2026-10-28T12:00:17.519109+08:00",
  "input": "python3 labs/cloud-functions/run.py",
  "exitCode": 0,
  "environment": {
    "os": "macOS-27.2-arm64-arm-64bit",
    "arch": "arm64",
    "python": "3.9.6",
    "jdk": "openjdk version \"21.0.11\" 2026-04-21 LTS\nOpenJDK Runtime Environment (build 21.0.11+11-LTS)\nOpenJDK 64-Bit Server VM (build 21.0.11+11-LTS, mixed mode, sharing)",
    "maven": "Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)\nMaven home: /Users/gaochao/develop/maven-3.9.9\nJava version: 21.0.11, vendor: BellSoft, runtime: /Library/Java/JavaVirtualMachines/liberica-jdk-21.jdk/Contents/Home\nDefault locale: zh_CN_#Hans, platform encoding: UTF-8\nOS name: \"mac os x\", version: \"27.2\", arch: \"aarch64\", family: \"mac\"",
    "frameworkDependencies": {
      "org.springframework.cloud:spring-cloud-stream": "5.0.4",
      "org.springframework.boot:spring-boot-integration": "4.0.9",
      "org.springframework.boot:spring-boot-transaction": "4.0.9",
      "org.springframework.boot:spring-boot-persistence": "4.0.9",
      "org.springframework.boot:spring-boot-starter-validation": "4.0.9",
      "org.springframework.boot:spring-boot-validation": "4.0.9",
      "org.apache.tomcat.embed:tomcat-embed-el": "11.0.27",
      "org.hibernate.validator:hibernate-validator": "9.0.2.Final",
      "jakarta.validation:jakarta.validation-api": "3.1.1",
      "org.jboss.logging:jboss-logging": "3.6.3.Final",
      "com.fasterxml:classmate": "1.7.3",
      "org.springframework:spring-messaging": "7.0.10",
      "org.springframework:spring-beans": "7.0.10",
      "org.springframework.integration:spring-integration-core": "7.0.7",
      "org.springframework:spring-aop": "7.0.10",
      "org.springframework:spring-tx": "7.0.10",
      "io.projectreactor:reactor-core": "3.8.8",
      "org.reactivestreams:reactive-streams": "1.0.4",
      "org.springframework.integration:spring-integration-jmx": "7.0.7",
      "com.fasterxml.jackson.core:jackson-annotations": "2.21",
      "org.springframework.cloud:spring-cloud-stream-binder-kafka": "5.0.4",
      "tools.jackson.core:jackson-core": "3.1.7",
      "tools.jackson.core:jackson-databind": "3.1.7",
      "org.springframework.cloud:spring-cloud-stream-binder-kafka-core": "5.0.4",
      "org.springframework.boot:spring-boot-kafka": "4.0.9",
      "org.springframework.integration:spring-integration-kafka": "7.0.7",
      "org.springframework.kafka:spring-kafka": "4.0.8",
      "org.apache.kafka:kafka-clients": "4.1.2",
      "org.springframework.cloud:spring-cloud-function-context": "5.0.5",
      "org.springframework.boot:spring-boot-autoconfigure": "4.0.9",
      "org.springframework.boot:spring-boot": "4.0.9",
      "org.springframework.boot:spring-boot-restclient": "4.0.9",
      "org.springframework.boot:spring-boot-http-client": "4.0.9",
      "org.springframework.boot:spring-boot-http-converter": "4.0.9",
      "org.springframework.boot:spring-boot-web-server": "4.0.9",
      "org.springframework:spring-web": "7.0.10",
      "org.springframework.cloud:spring-cloud-function-core": "5.0.5",
      "tools.jackson.datatype:jackson-datatype-joda": "3.1.7",
      "joda-time:joda-time": "2.12.7",
      "org.springframework.cloud:spring-cloud-task-core": "5.0.2",
      "org.springframework.boot:spring-boot-sql": "4.0.9",
      "org.springframework:spring-jdbc": "7.0.10",
      "org.springframework.batch:spring-batch-infrastructure": "6.0.6",
      "org.springframework.retry:spring-retry": "2.0.13",
      "org.springframework.data:spring-data-commons": "4.0.8",
      "io.micrometer:micrometer-core": "1.16.8",
      "org.jspecify:jspecify": "1.0.1",
      "io.micrometer:micrometer-commons": "1.16.8",
      "org.hdrhistogram:HdrHistogram": "2.2.2",
      "org.latencyutils:LatencyUtils": "2.0.3",
      "io.micrometer:micrometer-observation": "1.16.8",
      "org.springframework.integration:spring-integration-jdbc": "7.0.7",
      "org.springframework.boot:spring-boot-starter-jdbc": "4.0.9",
      "org.springframework.boot:spring-boot-starter": "4.0.9",
      "org.springframework.boot:spring-boot-starter-logging": "4.0.9",
      "ch.qos.logback:logback-classic": "1.5.38",
      "ch.qos.logback:logback-core": "1.5.38",
      "org.apache.logging.log4j:log4j-to-slf4j": "2.25.5",
      "org.slf4j:jul-to-slf4j": "2.0.20",
      "jakarta.annotation:jakarta.annotation-api": "3.0.0",
      "org.yaml:snakeyaml": "2.5",
      "org.springframework.boot:spring-boot-jdbc": "4.0.9",
      "com.zaxxer:HikariCP": "7.0.2",
      "com.h2database:h2": "2.4.240",
      "org.springframework.boot:spring-boot-starter-test": "4.0.9",
      "org.springframework.boot:spring-boot-test": "4.0.9",
      "org.springframework.boot:spring-boot-test-autoconfigure": "4.0.9",
      "com.jayway.jsonpath:json-path": "2.10.0",
      "jakarta.xml.bind:jakarta.xml.bind-api": "4.0.5",
      "jakarta.activation:jakarta.activation-api": "2.1.4",
      "net.minidev:json-smart": "2.6.0",
      "net.minidev:accessors-smart": "2.6.0",
      "org.ow2.asm:asm": "9.7.1",
      "org.assertj:assertj-core": "3.27.7",
      "net.bytebuddy:byte-buddy": "1.17.8",
      "org.awaitility:awaitility": "4.3.0",
      "org.hamcrest:hamcrest": "3.0",
      "org.junit.jupiter:junit-jupiter": "6.0.3",
      "org.junit.jupiter:junit-jupiter-params": "6.0.3",
      "org.junit.jupiter:junit-jupiter-engine": "6.0.3",
      "org.mockito:mockito-core": "5.20.0",
      "net.bytebuddy:byte-buddy-agent": "1.17.8",
      "org.objenesis:objenesis": "3.3",
      "org.mockito:mockito-junit-jupiter": "5.20.0",
      "org.skyscreamer:jsonassert": "1.5.3",
      "com.vaadin.external.google:android-json": "0.0.20131108.vaadin1",
      "org.springframework:spring-core": "7.0.10",
      "commons-logging:commons-logging": "1.3.6",
      "org.springframework:spring-test": "7.0.10",
      "org.xmlunit:xmlunit-core": "2.10.4",
      "org.springframework.kafka:spring-kafka-test": "4.0.8",
      "org.slf4j:slf4j-api": "2.0.20",
      "org.springframework:spring-context": "7.0.10",
      "org.springframework:spring-expression": "7.0.10",
      "com.github.luben:zstd-jni": "1.5.6-10",
      "at.yawk.lz4:lz4-java": "1.10.1",
      "org.xerial.snappy:snappy-java": "1.1.10.7",
      "org.apache.kafka:kafka-server": "4.1.2",
      "org.apache.kafka:kafka-storage": "4.1.2",
      "com.github.ben-manes.caffeine:caffeine": "3.2.4",
      "org.apache.kafka:kafka-group-coordinator": "4.1.2",
      "org.apache.kafka:kafka-group-coordinator-api": "4.1.2",
      "org.apache.kafka:kafka-coordinator-common": "4.1.2",
      "com.google.re2j:re2j": "1.8",
      "com.dynatrace.hash4j:hash4j": "0.22.0",
      "org.apache.kafka:kafka-transaction-coordinator": "4.1.2",
      "org.apache.kafka:kafka-raft": "4.1.2",
      "org.apache.kafka:kafka-share-coordinator": "4.1.2",
      "org.apache.kafka:kafka-storage-api": "4.1.2",
      "com.fasterxml.jackson.core:jackson-databind": "2.21.7",
      "com.fasterxml.jackson.core:jackson-core": "2.21.7",
      "com.yammer.metrics:metrics-core": "2.2.0",
      "org.apache.logging.log4j:log4j-api": "2.25.5",
      "org.apache.logging.log4j:log4j-core": "2.25.5",
      "org.apache.kafka:kafka-test-common-runtime": "4.1.2",
      "org.apache.kafka:kafka_2.13": "4.1.2",
      "org.scala-lang:scala-library": "2.13.16",
      "org.apache.kafka:kafka-tools-api": "4.1.2",
      "net.sourceforge.argparse4j:argparse4j": "0.7.0",
      "commons-validator:commons-validator": "1.10.1",
      "commons-beanutils:commons-beanutils": "1.11.0",
      "commons-digester:commons-digester": "2.1",
      "commons-collections:commons-collections": "3.2.2",
      "com.fasterxml.jackson.dataformat:jackson-dataformat-csv": "2.21.7",
      "org.bitbucket.b_c:jose4j": "0.9.6",
      "org.scala-lang:scala-reflect": "2.13.16",
      "com.typesafe.scala-logging:scala-logging_2.13": "3.9.5",
      "org.apache.kafka:kafka-test-common-internal-api": "4.1.2",
      "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml": "2.21.7",
      "org.apache.kafka:kafka-metadata": "4.1.2",
      "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": "2.21.7",
      "org.apache.kafka:kafka-server-common": "4.1.2",
      "net.sf.jopt-simple:jopt-simple": "5.0.4",
      "org.pcollections:pcollections": "4.0.2",
      "org.apache.kafka:kafka-streams-test-utils": "4.1.2",
      "org.apache.kafka:kafka-streams": "4.1.2",
      "org.rocksdb:rocksdbjni": "9.7.3",
      "org.junit.jupiter:junit-jupiter-api": "6.0.3",
      "org.opentest4j:opentest4j": "1.3.0",
      "org.junit.platform:junit-platform-commons": "6.0.3",
      "org.apiguardian:apiguardian-api": "1.1.2",
      "org.junit.platform:junit-platform-launcher": "6.0.3",
      "org.junit.platform:junit-platform-engine": "6.0.3"
    },
    "contractDependencies": {
      "org.springframework.boot:spring-boot-starter-webmvc": "4.0.9",
      "org.springframework.boot:spring-boot-starter": "4.0.9",
      "org.springframework.boot:spring-boot-starter-logging": "4.0.9",
      "ch.qos.logback:logback-classic": "1.5.38",
      "ch.qos.logback:logback-core": "1.5.38",
      "org.apache.logging.log4j:log4j-to-slf4j": "2.25.5",
      "org.apache.logging.log4j:log4j-api": "2.25.5",
      "org.slf4j:jul-to-slf4j": "2.0.20",
      "org.springframework.boot:spring-boot-autoconfigure": "4.0.9",
      "jakarta.annotation:jakarta.annotation-api": "3.0.0",
      "org.yaml:snakeyaml": "2.5",
      "org.springframework.boot:spring-boot-starter-jackson": "4.0.9",
      "org.springframework.boot:spring-boot-jackson": "4.0.9",
      "org.springframework.boot:spring-boot-starter-tomcat": "4.0.9",
      "org.springframework.boot:spring-boot-starter-tomcat-runtime": "4.0.9",
      "org.springframework.boot:spring-boot-web-server": "4.0.9",
      "org.apache.tomcat.embed:tomcat-embed-core": "11.0.27",
      "org.apache.tomcat.embed:tomcat-embed-el": "11.0.27",
      "org.apache.tomcat.embed:tomcat-embed-websocket": "11.0.27",
      "org.springframework.boot:spring-boot-tomcat": "4.0.9",
      "org.springframework.boot:spring-boot-http-converter": "4.0.9",
      "org.springframework.boot:spring-boot": "4.0.9",
      "org.springframework:spring-context": "7.0.10",
      "org.springframework:spring-web": "7.0.10",
      "org.springframework:spring-beans": "7.0.10",
      "io.micrometer:micrometer-observation": "1.16.8",
      "io.micrometer:micrometer-commons": "1.16.8",
      "org.springframework.boot:spring-boot-webmvc": "4.0.9",
      "org.springframework.boot:spring-boot-servlet": "4.0.9",
      "org.springframework:spring-webmvc": "7.0.10",
      "org.springframework:spring-aop": "7.0.10",
      "org.springframework:spring-expression": "7.0.10",
      "org.springframework.cloud:spring-cloud-starter-contract-verifier": "5.0.3",
      "org.springframework.cloud:spring-cloud-contract-verifier": "5.0.3",
      "org.springframework.cloud:spring-cloud-contract-spec": "5.0.3",
      "org.springframework.cloud:spring-cloud-contract-spec-java": "5.0.3",
      "dk.brics:automaton": "1.12-4",
      "org.springframework.cloud:spring-cloud-contract-spec-groovy": "5.0.3",
      "org.springframework.boot:spring-boot-restclient": "4.0.9",
      "org.springframework.boot:spring-boot-http-client": "4.0.9",
      "org.springframework.boot:spring-boot-test-autoconfigure": "4.0.9",
      "tools.jackson.core:jackson-databind": "3.1.7",
      "com.fasterxml.jackson.core:jackson-annotations": "2.21",
      "tools.jackson.core:jackson-core": "3.1.7",
      "org.apache.commons:commons-text": "1.14.0",
      "org.apache.commons:commons-lang3": "3.19.0",
      "org.wiremock:wiremock-standalone": "3.13.2",
      "org.jspecify:jspecify": "1.0.1",
      "com.rackspace.eclipse.webtools.sourceediting:org.eclipse.wst.xml.xpath2.processor": "2.1.100",
      "edu.princeton.cup:java-cup": "10k",
      "com.ibm.icu:icu4j": "4.6",
      "org.apache.groovy:groovy": "5.0.8",
      "org.apache.groovy:groovy-nio": "5.0.8",
      "org.apache.groovy:groovy-json": "5.0.8",
      "org.apache.groovy:groovy-xml": "5.0.8",
      "org.skyscreamer:jsonassert": "1.5.3",
      "com.vaadin.external.google:android-json": "0.0.20131108.vaadin1",
      "com.github.jknack:handlebars": "4.5.1",
      "org.openjdk.nashorn:nashorn-core": "15.4",
      "org.ow2.asm:asm-commons": "7.3.1",
      "org.ow2.asm:asm-analysis": "7.3.1",
      "org.ow2.asm:asm-tree": "7.3.1",
      "org.ow2.asm:asm-util": "7.3.1",
      "commons-beanutils:commons-beanutils": "1.11.0",
      "commons-logging:commons-logging": "1.3.6",
      "commons-collections:commons-collections": "3.2.2",
      "tools.jackson.dataformat:jackson-dataformat-yaml": "3.1.7",
      "org.snakeyaml:snakeyaml-engine": "3.0.1",
      "org.mockito:mockito-core": "5.20.0",
      "net.bytebuddy:byte-buddy": "1.17.8",
      "net.bytebuddy:byte-buddy-agent": "1.17.8",
      "org.objenesis:objenesis": "3.3",
      "net.javacrumbs.json-unit:json-unit-assertj": "5.1.2",
      "net.javacrumbs.json-unit:json-unit-core": "5.1.2",
      "org.hamcrest:hamcrest-core": "3.0",
      "net.javacrumbs.json-unit:json-unit-json-path": "5.1.2",
      "org.junit.jupiter:junit-jupiter-api": "6.0.3",
      "org.opentest4j:opentest4j": "1.3.0",
      "org.junit.platform:junit-platform-commons": "6.0.3",
      "org.apiguardian:apiguardian-api": "1.1.2",
      "io.rest-assured:rest-assured": "5.5.7",
      "org.apache.httpcomponents:httpclient": "4.5.13",
      "org.apache.httpcomponents:httpcore": "4.4.16",
      "commons-codec:commons-codec": "1.19.0",
      "org.apache.httpcomponents:httpmime": "4.5.13",
      "org.hamcrest:hamcrest": "3.0",
      "org.ccil.cowan.tagsoup:tagsoup": "1.2.1",
      "io.rest-assured:json-path": "5.5.7",
      "io.rest-assured:rest-assured-common": "5.5.7",
      "io.rest-assured:xml-path": "5.5.7",
      "io.rest-assured:spring-mock-mvc": "5.5.7",
      "io.rest-assured:spring-commons": "5.5.7",
      "org.springframework:spring-test": "7.0.10",
      "com.toomuchcoding.jsonassert:jsonassert": "0.8.0",
      "com.jayway.jsonpath:json-path": "2.10.0",
      "net.minidev:json-smart": "2.6.0",
      "net.minidev:accessors-smart": "2.6.0",
      "org.slf4j:slf4j-api": "2.0.20",
      "cglib:cglib": "3.3.0",
      "org.ow2.asm:asm": "7.1",
      "org.springframework.boot:spring-boot-starter-test": "4.0.9",
      "org.springframework.boot:spring-boot-test": "4.0.9",
      "jakarta.xml.bind:jakarta.xml.bind-api": "4.0.5",
      "jakarta.activation:jakarta.activation-api": "2.1.4",
      "org.assertj:assertj-core": "3.27.7",
      "org.awaitility:awaitility": "4.3.0",
      "org.junit.jupiter:junit-jupiter": "6.0.3",
      "org.junit.jupiter:junit-jupiter-params": "6.0.3",
      "org.junit.jupiter:junit-jupiter-engine": "6.0.3",
      "org.junit.platform:junit-platform-engine": "6.0.3",
      "org.mockito:mockito-junit-jupiter": "5.20.0",
      "org.springframework:spring-core": "7.0.10",
      "org.xmlunit:xmlunit-core": "2.10.4",
      "org.springframework.cloud:spring-cloud-starter-contract-stub-runner": "5.0.3",
      "org.springframework.cloud:spring-cloud-contract-stub-runner": "5.0.3",
      "org.springframework.cloud:spring-cloud-contract-converters": "5.0.3",
      "org.apache.maven.resolver:maven-resolver-connector-basic": "1.9.27",
      "org.apache.maven.resolver:maven-resolver-spi": "1.9.27",
      "org.apache.maven.resolver:maven-resolver-util": "1.9.27",
      "org.apache.maven.resolver:maven-resolver-transport-file": "1.9.27",
      "org.apache.maven:maven-resolver-provider": "3.9.16",
      "org.apache.maven:maven-model": "3.9.16",
      "org.apache.maven:maven-model-builder": "3.9.16",
      "org.apache.maven:maven-artifact": "3.9.16",
      "org.apache.maven:maven-repository-metadata": "3.9.16",
      "org.apache.maven.resolver:maven-resolver-impl": "1.9.27",
      "org.apache.maven.resolver:maven-resolver-named-locks": "1.9.27",
      "javax.inject:javax.inject": "1",
      "org.apache.maven.resolver:maven-resolver-transport-http": "1.9.27",
      "com.google.code.gson:gson": "2.13.2",
      "com.google.errorprone:error_prone_annotations": "2.41.0",
      "org.slf4j:jcl-over-slf4j": "2.0.20",
      "org.apache.maven:maven-settings-builder": "3.9.16",
      "org.apache.maven:maven-builder-support": "3.9.16",
      "org.codehaus.plexus:plexus-interpolation": "1.29",
      "org.apache.maven:maven-settings": "3.9.16",
      "org.codehaus.plexus:plexus-sec-dispatcher": "2.0",
      "org.codehaus.plexus:plexus-cipher": "2.0",
      "org.eclipse.jgit:org.eclipse.jgit": "7.4.0.202509020913-r",
      "com.googlecode.javaewah:JavaEWAH": "1.2.3",
      "org.eclipse.jgit:org.eclipse.jgit.ssh.jsch": "7.4.0.202509020913-r",
      "com.jcraft:jsch": "0.1.55",
      "com.jcraft:jzlib": "1.1.3",
      "com.jcraft:jsch.agentproxy.sshagent": "0.0.9",
      "com.jcraft:jsch.agentproxy.core": "0.0.9",
      "com.jcraft:jsch.agentproxy.jsch": "0.0.9",
      "com.jcraft:jsch.agentproxy.usocket-jna": "0.0.9",
      "net.java.dev.jna:jna": "4.1.0",
      "net.java.dev.jna:jna-platform": "4.1.0",
      "org.springframework.cloud:spring-cloud-contract-wiremock": "5.0.3",
      "org.apache.httpcomponents.client5:httpclient5": "5.5.2",
      "org.apache.httpcomponents.core5:httpcore5": "5.3.6",
      "org.apache.httpcomponents.core5:httpcore5-h2": "5.3.6",
      "org.springframework.cloud:spring-cloud-test-support": "5.0.2",
      "org.apache.maven.resolver:maven-resolver-api": "1.9.27",
      "org.sonatype.sisu:sisu-inject-plexus": "2.6.0",
      "org.codehaus.plexus:plexus-component-annotations": "1.5.5",
      "org.codehaus.plexus:plexus-classworlds": "2.5.2",
      "org.codehaus.plexus:plexus-utils": "3.0.18",
      "org.sonatype.sisu:sisu-inject-bean": "2.6.0",
      "javax.enterprise:cdi-api": "1.0",
      "javax.annotation:jsr250-api": "1.0",
      "org.sonatype.sisu:sisu-guice": "3.2.5",
      "com.google.guava:guava": "16.0.1",
      "org.eclipse.sisu:org.eclipse.sisu.inject": "0.3.0",
      "org.eclipse.sisu:org.eclipse.sisu.plexus": "0.3.0"
    }
  },
  "expectedTestCount": 10,
  "testCount": 10,
  "reports": [
    {
      "name": "study.cloudfunctions.FunctionCatalogTest",
      "tests": 2,
      "failures": 0,
      "errors": 0,
      "skipped": 0,
      "testNames": [
        "catalogComposesFunctionsWithoutTransportAndRoutingRejectsUnknownNames",
        "reactiveFunctionBuildsOneStreamAndPropagatesTerminalFailure"
      ],
      "path": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/framework-reports/TEST-study.cloudfunctions.FunctionCatalogTest.xml",
      "sha256": "5a3c830db5dc29c7207507afd3dd085372ff693dc248ac7836b96034066d7978"
    },
    {
      "name": "study.cloudfunctions.StreamBrokerTest",
      "tests": 4,
      "failures": 0,
      "errors": 0,
      "skipped": 0,
      "testNames": [
        "exhaustedBinderRetriesPublishOriginalPayloadToDlqAndAdvanceGroup",
        "retryCompletesBeforeRecordOffsetIsCommitted",
        "exhaustedRetriesWithoutDlqDoNotProveBusinessSuccessAndFollowingRecordStillRuns",
        "streamBridgeSendsToDynamicDestinationButSendTrueAloneIsNotConsumerEvidence"
      ],
      "path": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/framework-reports/TEST-study.cloudfunctions.StreamBrokerTest.xml",
      "sha256": "06cd8c81d12d3b83d67b5a92af4925bdf3573185e0d4f2fb70ad758d3cde075b"
    },
    {
      "name": "study.cloudfunctions.TaskExecutionTest",
      "tests": 2,
      "failures": 0,
      "errors": 0,
      "skipped": 0,
      "testNames": [
        "completedAndFailedLaunchesRemainQueryableAfterContextsCloseAndRelaunchGetsANewId",
        "singleInstanceRejectsConcurrentLaunchAndACompletedTaskCanRunAgain"
      ],
      "path": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/framework-reports/TEST-study.cloudfunctions.TaskExecutionTest.xml",
      "sha256": "4f8ac1610922f063c7520e4741a4a0be26adad9cb685a21503ea5f21d48a4650"
    },
    {
      "name": "study.cloudfunctions.contract.ContractStubRunnerTest",
      "tests": 1,
      "failures": 0,
      "errors": 0,
      "skipped": 0,
      "testNames": [
        "generatedContractMappingsServeConsumerRequestsAndUnknownRoutesRemainUnmatched"
      ],
      "path": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/contract-reports/TEST-study.cloudfunctions.contract.ContractStubRunnerTest.xml",
      "sha256": "92f29765facc3ee57e3f168ef416d1970cd5030942884a9849dd69b2ad7a1b9f"
    },
    {
      "name": "study.cloudfunctions.contract.ContractVerifierTest",
      "tests": 1,
      "failures": 0,
      "errors": 0,
      "skipped": 0,
      "testNames": [
        "validate_order_ready"
      ],
      "path": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/contract-reports/TEST-study.cloudfunctions.contract.ContractVerifierTest.xml",
      "sha256": "11a04590eb4347f1ccfed126f184b7ef7bbf1f81219ce552c89e00300528f24c"
    }
  ],
  "results": [
    {
      "name": "jdk",
      "command": [
        "/Library/Java/JavaVirtualMachines/liberica-jdk-21.jdk/Contents/Home/bin/java",
        "-version"
      ],
      "cwd": "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions",
      "startedAt": "2026-10-28T11:59:53.248972+08:00",
      "exitCode": 0,
      "expectedExitCode": 0,
      "cleanupError": null,
      "log": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/jdk.log",
      "observed": [],
      "finishedAt": "2026-10-28T11:59:53.348534+08:00",
      "logSha256": "392524ee4bfbd5e1de98c543683d7fcaed057f7d69ef44a0d0a182de17816feb"
    },
    {
      "name": "maven",
      "command": [
        "/Users/gaochao/develop/maven-3.9.9/bin/mvn",
        "-version"
      ],
      "cwd": "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions",
      "startedAt": "2026-10-28T11:59:53.349645+08:00",
      "exitCode": 0,
      "expectedExitCode": 0,
      "cleanupError": null,
      "log": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/maven.log",
      "observed": [],
      "finishedAt": "2026-10-28T11:59:53.797115+08:00",
      "logSha256": "bba0865da01a8b3b2c925c6b7fee10782f3e69aa5f382c2f52f06c87a4bc5624"
    },
    {
      "name": "framework-tests",
      "command": [
        "/Users/gaochao/develop/maven-3.9.9/bin/mvn",
        "-B",
        "-ntp",
        "-q",
        "-f",
        "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions/pom.xml",
        "clean",
        "test",
        "-DskipTests=false",
        "-Dmaven.test.skip=false",
        "-Dmaven.clean.skip=false",
        "-Dmaven.test.failure.ignore=false",
        "-DfailIfNoTests=true"
      ],
      "cwd": "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions",
      "startedAt": "2026-10-28T11:59:53.798055+08:00",
      "exitCode": 0,
      "expectedExitCode": 0,
      "cleanupError": null,
      "log": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/framework-tests.log",
      "observed": [
        "U36 functionCatalog=PASS composed=HELLO! routed=ROUTE unknownFunction=rejected",
        "U36 functionReactive=PASS values=A,B,C subscriptions=1 terminalFailure=propagated",
        "U36 streamDlq=PASS attempts=3 dlqPayload=poison:order-2 committed=1 businessSuccess=0",
        "U36 streamCommit=PASS attempts=2 blockedCommit=-1 completedCommit=1",
        "U36 streamNoDlq=PASS attempts=3 poisonBusinessSuccess=0 followingBusinessSuccess=1 committed=2",
        "U36 streamBridge=PASS send=true brokerRead=dynamic-order destination=dynamic",
        "U36 taskRepository=PASS launches=3 exits=0,1,0 newExecutionId=true persistentFile=true",
        "U36 taskSingleInstance=PASS concurrent=rejected businessRuns=2 afterCompletion=allowed ttlUnit=seconds"
      ],
      "finishedAt": "2026-10-28T12:00:06.805873+08:00",
      "logSha256": "edd60cd7427dd265335b8df8dafe210d55f8e3cb21533400c48b335929c4f3ce"
    },
    {
      "name": "contract-negative",
      "command": [
        "/Users/gaochao/develop/maven-3.9.9/bin/mvn",
        "-B",
        "-ntp",
        "-q",
        "-f",
        "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions/contract/pom.xml",
        "clean",
        "test",
        "-Dtest=ContractVerifierTest",
        "-Du36.contract.break=BROKEN",
        "-DskipTests=false",
        "-Dmaven.test.skip=false",
        "-Dmaven.clean.skip=false",
        "-Dmaven.test.failure.ignore=false",
        "-DfailIfNoTests=true"
      ],
      "cwd": "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions",
      "startedAt": "2026-10-28T12:00:06.810012+08:00",
      "exitCode": 1,
      "expectedExitCode": 1,
      "cleanupError": null,
      "log": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/contract-negative.log",
      "observed": [],
      "finishedAt": "2026-10-28T12:00:10.438536+08:00",
      "logSha256": "877cc5b3b6851e42e3d50e47998dadbfdcf82db31bbd592f68ba12ee88068fb0"
    },
    {
      "name": "contract-tests",
      "command": [
        "/Users/gaochao/develop/maven-3.9.9/bin/mvn",
        "-B",
        "-ntp",
        "-q",
        "-f",
        "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions/contract/pom.xml",
        "clean",
        "test",
        "-Du36.contract.break=READY",
        "-DskipTests=false",
        "-Dmaven.test.skip=false",
        "-Dmaven.clean.skip=false",
        "-Dmaven.test.failure.ignore=false",
        "-DfailIfNoTests=true"
      ],
      "cwd": "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions",
      "startedAt": "2026-10-28T12:00:10.440353+08:00",
      "exitCode": 0,
      "expectedExitCode": 0,
      "cleanupError": null,
      "log": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/contract-tests.log",
      "observed": [
        "U36 contractStubRunner=PASS generatedMapping=true expectedRoute=200 unknownRoute=404 transport=loopback-http"
      ],
      "finishedAt": "2026-10-28T12:00:14.456282+08:00",
      "logSha256": "7a61930206385b5fd85e8343efce85ec344054b6d8f5e8df4c245e700d253be4"
    },
    {
      "name": "framework-dependencies",
      "command": [
        "/Users/gaochao/develop/maven-3.9.9/bin/mvn",
        "-B",
        "-ntp",
        "-q",
        "-f",
        "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions/pom.xml",
        "dependency:list",
        "-DincludeScope=test",
        "-DappendOutput=false",
        "-DoutputFile=/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/framework-dependencies.txt"
      ],
      "cwd": "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions",
      "startedAt": "2026-10-28T12:00:14.458786+08:00",
      "exitCode": 0,
      "expectedExitCode": 0,
      "cleanupError": null,
      "log": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/framework-dependencies.log",
      "observed": [],
      "finishedAt": "2026-10-28T12:00:15.978778+08:00",
      "logSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    },
    {
      "name": "contract-dependencies",
      "command": [
        "/Users/gaochao/develop/maven-3.9.9/bin/mvn",
        "-B",
        "-ntp",
        "-q",
        "-f",
        "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions/contract/pom.xml",
        "dependency:list",
        "-DincludeScope=test",
        "-DappendOutput=false",
        "-DoutputFile=/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/contract-dependencies.txt"
      ],
      "cwd": "/Users/gaochao/Documents/面试/software-engineering-study/labs/cloud-functions",
      "startedAt": "2026-10-28T12:00:15.980152+08:00",
      "exitCode": 0,
      "expectedExitCode": 0,
      "cleanupError": null,
      "log": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/contract-dependencies.log",
      "observed": [],
      "finishedAt": "2026-10-28T12:00:17.515619+08:00",
      "logSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    }
  ],
  "observed": [
    "U36 functionCatalog=PASS composed=HELLO! routed=ROUTE unknownFunction=rejected",
    "U36 functionReactive=PASS values=A,B,C subscriptions=1 terminalFailure=propagated",
    "U36 streamDlq=PASS attempts=3 dlqPayload=poison:order-2 committed=1 businessSuccess=0",
    "U36 streamCommit=PASS attempts=2 blockedCommit=-1 completedCommit=1",
    "U36 streamNoDlq=PASS attempts=3 poisonBusinessSuccess=0 followingBusinessSuccess=1 committed=2",
    "U36 streamBridge=PASS send=true brokerRead=dynamic-order destination=dynamic",
    "U36 taskRepository=PASS launches=3 exits=0,1,0 newExecutionId=true persistentFile=true",
    "U36 taskSingleInstance=PASS concurrent=rejected businessRuns=2 afterCompletion=allowed ttlUnit=seconds",
    "U36 contractStubRunner=PASS generatedMapping=true expectedRoute=200 unknownRoute=404 transport=loopback-http"
  ],
  "artifacts": {
    "README.md": "b33e9bc9b105bb5e06da4ce2cf62d6fe58f3aa04b52e13de08fe6aa499a5a4fe",
    "contract/pom.xml": "68c9197db1501ed551a2dca903153fe9910604fb0bd2f58e08d576384cc44b4b",
    "contract/src/test/java/study/cloudfunctions/contract/ContractBase.java": "d8af714ce60c132dcd4c6568ea5a238e4dc5f25b68274b494360ae0abbeb77a2",
    "contract/src/test/java/study/cloudfunctions/contract/ContractStubRunnerTest.java": "72b8259fcc485e43f3de2e149ab3a383ae1e2f245f3e29ea7e851f62e1ed11f1",
    "contract/src/test/resources/contracts/orderReady.groovy": "e8e3046b6151855d9c6663645148b6d2e88735bab3d3000316d7a64645f51c61",
    "pom.xml": "9fbc48331508dbf7b6366f598a6998f465ef9fbd19c84815453c28e200631a52",
    "run.py": "c1ae580d9bb4b6412f9a2d230148ac474bb28ac71952486e9c98ed2d85238e60",
    "src/main/java/study/cloudfunctions/function/FunctionApp.java": "7f1261fed58e4eafcefd79e0a5f6c9229eb3a92d2bad9b7a945bd57aac5889d8",
    "src/main/java/study/cloudfunctions/stream/StreamApp.java": "c39212a690cb3aa3942725f5db3d42f29f1825b14a0550de4ad43882b7b66814",
    "src/main/java/study/cloudfunctions/task/TaskApp.java": "c9b89e30d9f8f02c082c44200288b837181cef1216e8b87facd0f59f92c6ffaa",
    "src/test/java/study/cloudfunctions/FunctionCatalogTest.java": "bee9a1592c174c5f2ed64241c33ca4eed274a6844247c2ae016ef109e2b5f835",
    "src/test/java/study/cloudfunctions/StreamBrokerTest.java": "9904a0e386328c885bdaa9000c4aa05dc9f88f41e7183902895151917a4cc45a",
    "src/test/java/study/cloudfunctions/TaskExecutionTest.java": "a7123342ddee3643402c93f6a7bd62ee9fca33ae4d1f177e5feab368283449d4"
  },
  "logs": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2",
  "cleanup": {
    "processGroups": "本次启动的进程组均已定向回收",
    "resources": "Context/Kafka/StubRunner由try-with-resources与AfterAll关闭；H2文件由JUnit TempDir定向清理"
  },
  "limits": [
    "Kafka 是本机单节点 embedded KRaft，同一测试 JVM，非生产集群、独立消费者进程或网络分区验证",
    "Task 使用临时 H2 文件；单实例竞争来自同一 JVM 的两个线程/独立 Context，未证明跨主机租约或进程崩溃后的锁恢复",
    "Task 重跑产生新的 executionId；没有 Batch 检查点或业务幂等证明，未验证任意任务 exactly-once",
    "Contract provider 通过生成的 MockMvc verifier；消费者通过真实 loopback HTTP 调用生成的 WireMock stub，不证明真实提供者可达或业务副作用",
    "Rabbit binder、双 binder、事务/EOS 跨库、Task launcher经Stream、Contract messaging与Function Web均未运行"
  ],
  "negativeControl": {
    "expected": "provider status BROKEN violates READY",
    "reports": [
      {
        "name": "study.cloudfunctions.contract.ContractVerifierTest",
        "tests": 1,
        "failures": 0,
        "errors": 1,
        "skipped": 0,
        "testNames": [
          "validate_order_ready"
        ],
        "path": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/negative-reports/TEST-study.cloudfunctions.contract.ContractVerifierTest.xml",
        "sha256": "bb5957a6bfdac5d7ce12a0f7f5cf96fd0967eecb78e546a850299081da272927"
      }
    ]
  },
  "frameworkDependencyReport": {
    "path": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/framework-dependencies.txt",
    "sha256": "a2960bfdb4dbfdc68e6b65ba1e57deecfa927d808f98cae66c2e48a11b034e4f"
  },
  "contractDependencyReport": {
    "path": "/Users/gaochao/.cache/software-engineering-study/java-depth-impl/u36/run-oqqe35e2/contract-dependencies.txt",
    "sha256": "baef01bd3fd366121de24c1a4a36d39fc3ac9649758e60ab0aa1d1db9a549a11"
  }
}
