├── .github ├── actions │ └── install-rust │ │ ├── README.md │ │ ├── action.yml │ │ └── main.js └── workflows │ └── main.yml ├── .gitignore ├── .rustfmt.toml ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── COPYRIGHT ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-Apache-2.0_WITH_LLVM-exception ├── LICENSE-MIT ├── ORG_CODE_OF_CONDUCT.md ├── README.md ├── ci ├── aarch64-o-largefile.patch ├── getsockopt-timeouts.patch ├── s390x-stat-have-nsec.patch ├── tcgets2-tcsets2.patch └── translate-errno.patch ├── example-crates ├── basic │ ├── Cargo.toml │ ├── README.md │ └── src │ │ └── main.rs ├── external-start │ ├── Cargo.toml │ ├── README.md │ └── src │ │ └── main.rs ├── origin-start-dynamic-linker │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ └── src │ │ └── lib.rs ├── origin-start-lto │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ └── src │ │ └── main.rs ├── origin-start-no-alloc │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ └── src │ │ └── main.rs ├── origin-start-panic-abort │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ └── src │ │ └── main.rs ├── origin-start-stable │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ └── src │ │ └── main.rs ├── origin-start │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ └── src │ │ └── main.rs ├── tiny-hello │ ├── .cargo │ │ └── config.toml │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ └── src │ │ └── main.rs └── tiny │ ├── .cargo │ └── config.toml │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ └── src │ └── main.rs ├── src ├── arch │ ├── aarch64.rs │ ├── arm.rs │ ├── riscv64.rs │ ├── x86.rs │ └── x86_64.rs ├── getauxval.rs ├── lib.rs ├── log.rs ├── mem │ ├── fast.rs │ ├── impls.rs │ ├── mod.rs │ ├── small.rs │ └── x86_64.rs ├── naked.rs ├── program │ ├── libc.rs │ └── linux_raw.rs ├── relocate.rs ├── signal │ ├── libc.rs │ └── linux_raw.rs ├── stubs.rs ├── thread │ ├── libc.rs │ └── linux_raw.rs └── unwind_unimplemented.rs ├── test-crates └── origin-start │ ├── Cargo.toml │ ├── build.rs │ └── src │ └── bin │ ├── abort-via-raise.rs │ ├── canary.rs │ ├── detach.rs │ ├── main-thread-dtors-adding-dtors.rs │ ├── program-dtors-adding-dtors.rs │ ├── thread-dtors-adding-dtors.rs │ ├── thread-id.rs │ ├── tls.rs │ └── trap.rs └── tests ├── example_crates.rs ├── stable.rs ├── test_crates.rs └── utils └── mod.rs /.github/actions/install-rust/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/.github/actions/install-rust/README.md -------------------------------------------------------------------------------- /.github/actions/install-rust/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/.github/actions/install-rust/action.yml -------------------------------------------------------------------------------- /.github/actions/install-rust/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/.github/actions/install-rust/main.js -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | Cargo.lock 3 | -------------------------------------------------------------------------------- /.rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/.rustfmt.toml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /COPYRIGHT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/COPYRIGHT -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/LICENSE-APACHE -------------------------------------------------------------------------------- /LICENSE-Apache-2.0_WITH_LLVM-exception: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/LICENSE-Apache-2.0_WITH_LLVM-exception -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /ORG_CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/ORG_CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/README.md -------------------------------------------------------------------------------- /ci/aarch64-o-largefile.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/ci/aarch64-o-largefile.patch -------------------------------------------------------------------------------- /ci/getsockopt-timeouts.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/ci/getsockopt-timeouts.patch -------------------------------------------------------------------------------- /ci/s390x-stat-have-nsec.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/ci/s390x-stat-have-nsec.patch -------------------------------------------------------------------------------- /ci/tcgets2-tcsets2.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/ci/tcgets2-tcsets2.patch -------------------------------------------------------------------------------- /ci/translate-errno.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/ci/translate-errno.patch -------------------------------------------------------------------------------- /example-crates/basic/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/basic/Cargo.toml -------------------------------------------------------------------------------- /example-crates/basic/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/basic/README.md -------------------------------------------------------------------------------- /example-crates/basic/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/basic/src/main.rs -------------------------------------------------------------------------------- /example-crates/external-start/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/external-start/Cargo.toml -------------------------------------------------------------------------------- /example-crates/external-start/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/external-start/README.md -------------------------------------------------------------------------------- /example-crates/external-start/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/external-start/src/main.rs -------------------------------------------------------------------------------- /example-crates/origin-start-dynamic-linker/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-dynamic-linker/Cargo.toml -------------------------------------------------------------------------------- /example-crates/origin-start-dynamic-linker/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-dynamic-linker/README.md -------------------------------------------------------------------------------- /example-crates/origin-start-dynamic-linker/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-dynamic-linker/build.rs -------------------------------------------------------------------------------- /example-crates/origin-start-dynamic-linker/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-dynamic-linker/src/lib.rs -------------------------------------------------------------------------------- /example-crates/origin-start-lto/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-lto/Cargo.toml -------------------------------------------------------------------------------- /example-crates/origin-start-lto/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-lto/README.md -------------------------------------------------------------------------------- /example-crates/origin-start-lto/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-lto/build.rs -------------------------------------------------------------------------------- /example-crates/origin-start-lto/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-lto/src/main.rs -------------------------------------------------------------------------------- /example-crates/origin-start-no-alloc/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-no-alloc/Cargo.toml -------------------------------------------------------------------------------- /example-crates/origin-start-no-alloc/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-no-alloc/README.md -------------------------------------------------------------------------------- /example-crates/origin-start-no-alloc/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-no-alloc/build.rs -------------------------------------------------------------------------------- /example-crates/origin-start-no-alloc/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-no-alloc/src/main.rs -------------------------------------------------------------------------------- /example-crates/origin-start-panic-abort/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-panic-abort/Cargo.toml -------------------------------------------------------------------------------- /example-crates/origin-start-panic-abort/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-panic-abort/README.md -------------------------------------------------------------------------------- /example-crates/origin-start-panic-abort/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-panic-abort/build.rs -------------------------------------------------------------------------------- /example-crates/origin-start-panic-abort/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-panic-abort/src/main.rs -------------------------------------------------------------------------------- /example-crates/origin-start-stable/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-stable/Cargo.toml -------------------------------------------------------------------------------- /example-crates/origin-start-stable/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-stable/README.md -------------------------------------------------------------------------------- /example-crates/origin-start-stable/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-stable/build.rs -------------------------------------------------------------------------------- /example-crates/origin-start-stable/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start-stable/src/main.rs -------------------------------------------------------------------------------- /example-crates/origin-start/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start/Cargo.toml -------------------------------------------------------------------------------- /example-crates/origin-start/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start/README.md -------------------------------------------------------------------------------- /example-crates/origin-start/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start/build.rs -------------------------------------------------------------------------------- /example-crates/origin-start/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/origin-start/src/main.rs -------------------------------------------------------------------------------- /example-crates/tiny-hello/.cargo/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/tiny-hello/.cargo/config.toml -------------------------------------------------------------------------------- /example-crates/tiny-hello/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/tiny-hello/Cargo.toml -------------------------------------------------------------------------------- /example-crates/tiny-hello/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/tiny-hello/README.md -------------------------------------------------------------------------------- /example-crates/tiny-hello/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/tiny-hello/build.rs -------------------------------------------------------------------------------- /example-crates/tiny-hello/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/tiny-hello/src/main.rs -------------------------------------------------------------------------------- /example-crates/tiny/.cargo/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/tiny/.cargo/config.toml -------------------------------------------------------------------------------- /example-crates/tiny/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/tiny/Cargo.toml -------------------------------------------------------------------------------- /example-crates/tiny/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/tiny/README.md -------------------------------------------------------------------------------- /example-crates/tiny/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/tiny/build.rs -------------------------------------------------------------------------------- /example-crates/tiny/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/example-crates/tiny/src/main.rs -------------------------------------------------------------------------------- /src/arch/aarch64.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/arch/aarch64.rs -------------------------------------------------------------------------------- /src/arch/arm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/arch/arm.rs -------------------------------------------------------------------------------- /src/arch/riscv64.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/arch/riscv64.rs -------------------------------------------------------------------------------- /src/arch/x86.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/arch/x86.rs -------------------------------------------------------------------------------- /src/arch/x86_64.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/arch/x86_64.rs -------------------------------------------------------------------------------- /src/getauxval.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/getauxval.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/log.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/log.rs -------------------------------------------------------------------------------- /src/mem/fast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/mem/fast.rs -------------------------------------------------------------------------------- /src/mem/impls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/mem/impls.rs -------------------------------------------------------------------------------- /src/mem/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/mem/mod.rs -------------------------------------------------------------------------------- /src/mem/small.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/mem/small.rs -------------------------------------------------------------------------------- /src/mem/x86_64.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/mem/x86_64.rs -------------------------------------------------------------------------------- /src/naked.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/naked.rs -------------------------------------------------------------------------------- /src/program/libc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/program/libc.rs -------------------------------------------------------------------------------- /src/program/linux_raw.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/program/linux_raw.rs -------------------------------------------------------------------------------- /src/relocate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/relocate.rs -------------------------------------------------------------------------------- /src/signal/libc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/signal/libc.rs -------------------------------------------------------------------------------- /src/signal/linux_raw.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/signal/linux_raw.rs -------------------------------------------------------------------------------- /src/stubs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/stubs.rs -------------------------------------------------------------------------------- /src/thread/libc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/thread/libc.rs -------------------------------------------------------------------------------- /src/thread/linux_raw.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/thread/linux_raw.rs -------------------------------------------------------------------------------- /src/unwind_unimplemented.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/src/unwind_unimplemented.rs -------------------------------------------------------------------------------- /test-crates/origin-start/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/test-crates/origin-start/Cargo.toml -------------------------------------------------------------------------------- /test-crates/origin-start/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/test-crates/origin-start/build.rs -------------------------------------------------------------------------------- /test-crates/origin-start/src/bin/abort-via-raise.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/test-crates/origin-start/src/bin/abort-via-raise.rs -------------------------------------------------------------------------------- /test-crates/origin-start/src/bin/canary.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/test-crates/origin-start/src/bin/canary.rs -------------------------------------------------------------------------------- /test-crates/origin-start/src/bin/detach.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/test-crates/origin-start/src/bin/detach.rs -------------------------------------------------------------------------------- /test-crates/origin-start/src/bin/main-thread-dtors-adding-dtors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/test-crates/origin-start/src/bin/main-thread-dtors-adding-dtors.rs -------------------------------------------------------------------------------- /test-crates/origin-start/src/bin/program-dtors-adding-dtors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/test-crates/origin-start/src/bin/program-dtors-adding-dtors.rs -------------------------------------------------------------------------------- /test-crates/origin-start/src/bin/thread-dtors-adding-dtors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/test-crates/origin-start/src/bin/thread-dtors-adding-dtors.rs -------------------------------------------------------------------------------- /test-crates/origin-start/src/bin/thread-id.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/test-crates/origin-start/src/bin/thread-id.rs -------------------------------------------------------------------------------- /test-crates/origin-start/src/bin/tls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/test-crates/origin-start/src/bin/tls.rs -------------------------------------------------------------------------------- /test-crates/origin-start/src/bin/trap.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/test-crates/origin-start/src/bin/trap.rs -------------------------------------------------------------------------------- /tests/example_crates.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/tests/example_crates.rs -------------------------------------------------------------------------------- /tests/stable.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/tests/stable.rs -------------------------------------------------------------------------------- /tests/test_crates.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/tests/test_crates.rs -------------------------------------------------------------------------------- /tests/utils/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunfishcode/origin/HEAD/tests/utils/mod.rs --------------------------------------------------------------------------------