forked from rcore-os/zCore
merge master
This commit is contained in:
commit
5b8c17cc2e
|
|
@ -4,7 +4,7 @@ on:
|
|||
push:
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: '40 3 * * *' # every day at 3:40
|
||||
- cron: '0 22 * * *' # every day at 22:00 UTC
|
||||
|
||||
jobs:
|
||||
check:
|
||||
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly-2021-11-02
|
||||
toolchain: nightly-2022-01-20
|
||||
override: true
|
||||
components: rust-src, rustfmt, clippy
|
||||
- name: Check code format
|
||||
|
|
@ -38,7 +38,7 @@ jobs:
|
|||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly-2021-11-02
|
||||
toolchain: nightly-2022-01-20
|
||||
components: rust-src, llvm-tools-preview
|
||||
- uses: actions-rs/install@v0.1
|
||||
with:
|
||||
|
|
@ -62,7 +62,7 @@ jobs:
|
|||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly-2021-11-02
|
||||
toolchain: nightly-2022-01-20
|
||||
override: true
|
||||
target: aarch64-unknown-linux-gnu
|
||||
- uses: actions-rs/cargo@v1
|
||||
|
|
@ -83,7 +83,7 @@ jobs:
|
|||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly-2021-11-02
|
||||
toolchain: nightly-2022-01-20
|
||||
target: x86_64-fuchsia
|
||||
- name: Build Zircon user programs
|
||||
run: cd zircon-user && make build MODE=release
|
||||
|
|
@ -1,163 +0,0 @@
|
|||
name: Test CI
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: '40 3 * * *' # every day at 3:40
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Pull prebuilt images
|
||||
run: git lfs pull -I prebuilt/linux/libc-libos.so,prebuilt/zircon/x64/bringup.zbi,prebuilt/zircon/x64/libzircon-libos.so,prebuilt/zircon/x64/userboot-libos.so
|
||||
- name: Prepare rootfs
|
||||
run: make rootfs
|
||||
- name: Test
|
||||
run: cargo test --no-fail-fast
|
||||
env:
|
||||
CARGO_INCREMENTAL: '0'
|
||||
RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Copt-level=0 -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort'
|
||||
RUSTDOCFLAGS: '-Zprofile -Ccodegen-units=1 -Copt-level=0 -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort'
|
||||
- name: Cache grcov
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.cargo/bin
|
||||
key: ${{ runner.os }}-grcov
|
||||
- name: Gather coverage data
|
||||
id: coverage
|
||||
uses: actions-rs/grcov@v0.1
|
||||
# FIXME: 'error from lcovParse: Failed to parse string'
|
||||
# - name: Coveralls upload
|
||||
# uses: coverallsapp/github-action@master
|
||||
# with:
|
||||
# github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# path-to-lcov: ${{ steps.coverage.outputs.report }}
|
||||
|
||||
bench:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Run benchmarks
|
||||
run: cargo bench
|
||||
|
||||
core-test:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- name: Pull prebuilt images
|
||||
run: git lfs pull -I prebuilt/zircon/x64/core-tests.zbi,prebuilt/zircon/x64/libzircon.so,prebuilt/zircon/x64/userboot.so
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly-2021-11-02
|
||||
components: rust-src
|
||||
- name: Install QEMU
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install qemu-system-x86
|
||||
- name: Build zCore
|
||||
run: cd zCore && make build MODE=release
|
||||
- name: Run core-tests
|
||||
run: |
|
||||
cd scripts
|
||||
pip3 install -r requirements.txt
|
||||
python3 core-tests.py
|
||||
|
||||
libos-core-test:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Pull prebuilt images
|
||||
run: git lfs pull -I prebuilt/zircon/x64/core-tests.zbi,prebuilt/zircon/x64/libzircon-libos.so,prebuilt/zircon/x64/userboot-libos.so
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly-2021-11-02
|
||||
components: rust-src
|
||||
- name: Run libos-core-tests
|
||||
run: |
|
||||
cd scripts
|
||||
pip3 install -r requirements.txt
|
||||
python3 unix-core-tests.py
|
||||
|
||||
libos-libc-test:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Pull prebuilt images
|
||||
run: git lfs pull -I prebuilt/linux/libc-libos.so
|
||||
- name: Install musl toolchain
|
||||
run: sudo apt-get install musl-tools musl-dev -y
|
||||
- name: Prepare rootfs and libc-test
|
||||
run: make rootfs && make libc-test
|
||||
- name: Run libos-libc-tests
|
||||
run: |
|
||||
cd scripts
|
||||
pip3 install -r requirements.txt
|
||||
python3 libos-libc-tests.py
|
||||
cat linux/test-result.txt
|
||||
|
||||
baremetal-libc-test:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly-2021-11-02
|
||||
components: rust-src
|
||||
- name: Pull prebuilt images
|
||||
run: git lfs pull -I prebuilt/linux/libc-libos.so
|
||||
- name: Install musl toolchain qemu-system-x86
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install musl-tools musl-dev qemu-system-x86 -y
|
||||
- name: Prepare rootfs and libc-test
|
||||
run: make baremetal-test-img
|
||||
- name: Build kernel
|
||||
run: cd zCore && make build MODE=release LINUX=1 ARCH=x86_64
|
||||
- name: create qemu disk
|
||||
run: cd zCore && make baremetal-qemu-disk MODE=release LINUX=1 ARCH=x86_64
|
||||
- name: Run baremetal-libc-test
|
||||
run: |
|
||||
cd scripts
|
||||
python3 ./baremetal-libc-test.py
|
||||
|
||||
baremetal-rv64-oscomp-test:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly-2021-11-02
|
||||
components: rust-src, llvm-tools-preview
|
||||
- uses: actions-rs/install@v0.1
|
||||
with:
|
||||
crate: cargo-binutils
|
||||
version: latest
|
||||
- name: Install cargo tools and qemu-system-riscv64
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install qemu-utils
|
||||
wget https://github.com/rcore-os/qemu-prebuilt/releases/download/5.2.0-riscv64/qemu-system-riscv64.tar.xz > /dev/null
|
||||
tar xJf qemu-system-riscv64.tar.xz && sudo cp qemu-system-riscv64 /usr/local/bin
|
||||
wget https://github.com/rcore-os/qemu-prebuilt/releases/download/qemu-share/qemu-share.tar.xz > /dev/null
|
||||
tar xJf qemu-share.tar.xz && sudo cp -r qemu /usr/local/share/
|
||||
- name: Prepare rootfs and oscomp
|
||||
run: make riscv-image
|
||||
- name: Build kernel
|
||||
run: cd zCore && make build MODE=release LINUX=1 ARCH=riscv64
|
||||
- name: Run baremetal-libc-test
|
||||
run: |
|
||||
cd scripts
|
||||
python3 baremetal-test-riscv64.py
|
||||
|
|
@ -0,0 +1,177 @@
|
|||
name: Test CI
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: '0 22 * * *' # every day at 22:00 UTC
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Pull prebuilt images
|
||||
run: git lfs pull -I prebuilt/linux/libc-libos.so,prebuilt/zircon/x64/bringup.zbi,prebuilt/zircon/x64/libzircon-libos.so,prebuilt/zircon/x64/userboot-libos.so
|
||||
- name: Prepare rootfs
|
||||
run: make rootfs
|
||||
- name: Test
|
||||
run: cargo test --no-fail-fast
|
||||
env:
|
||||
CARGO_INCREMENTAL: '0'
|
||||
RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Copt-level=0 -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort'
|
||||
RUSTDOCFLAGS: '-Zprofile -Ccodegen-units=1 -Copt-level=0 -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort'
|
||||
- name: Cache grcov
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.cargo/bin
|
||||
key: ${{ runner.os }}-grcov
|
||||
- name: Gather coverage data
|
||||
id: coverage
|
||||
uses: actions-rs/grcov@v0.1
|
||||
# FIXME: 'error from lcovParse: Failed to parse string'
|
||||
# - name: Coveralls upload
|
||||
# uses: coverallsapp/github-action@master
|
||||
# with:
|
||||
# github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# path-to-lcov: ${{ steps.coverage.outputs.report }}
|
||||
|
||||
bench:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Run benchmarks
|
||||
run: cargo bench
|
||||
|
||||
zircon-core-test-libos:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- name: Pull prebuilt images
|
||||
run: git lfs pull -I prebuilt/zircon/x64/core-tests.zbi,prebuilt/zircon/x64/libzircon-libos.so,prebuilt/zircon/x64/userboot-libos.so
|
||||
- name: Install dependencies
|
||||
run: pip3 install -r tests/requirements.txt
|
||||
- name: Run fast tests
|
||||
if: github.event_name != 'schedule'
|
||||
run: cd tests && python3 zircon_core_test.py --libos --fast
|
||||
- name: Run full tests
|
||||
if: github.event_name == 'schedule'
|
||||
run: cd tests && python3 zircon_core_test.py --libos
|
||||
|
||||
zircon-core-test-baremetal:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
arch: [x86_64]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- name: Pull prebuilt images
|
||||
run: git lfs pull -I prebuilt/zircon/x64/core-tests.zbi,prebuilt/zircon/x64/libzircon.so,prebuilt/zircon/x64/userboot.so
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly-2022-01-20
|
||||
components: rust-src
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install ninja-build -y
|
||||
pip3 install -r tests/requirements.txt
|
||||
- name: Cache QEMU
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: qemu-6.1.0
|
||||
key: qemu-6.1.0-${{ matrix.arch }}
|
||||
- name: Install QEMU
|
||||
run: |
|
||||
[ ! -d qemu-6.1.0 ] && wget https://download.qemu.org/qemu-6.1.0.tar.xz \
|
||||
&& tar xJf qemu-6.1.0.tar.xz > /dev/null \
|
||||
&& cd qemu-6.1.0 && ./configure --target-list=${{ matrix.arch }}-softmmu && cd ..
|
||||
cd qemu-6.1.0 && sudo make install -j
|
||||
qemu-system-${{ matrix.arch }} --version
|
||||
- name: Run fast tests
|
||||
if: github.event_name != 'schedule'
|
||||
run: cd tests && python3 zircon_core_test.py --fast
|
||||
- name: Run full tests
|
||||
if: github.event_name == 'schedule'
|
||||
run: cd tests && python3 zircon_core_test.py
|
||||
|
||||
linux-libc-test-libos:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- name: Pull prebuilt images
|
||||
run: git lfs pull -I prebuilt/linux/libc-libos.so
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install musl-tools musl-dev -y
|
||||
pip3 install -r tests/requirements.txt
|
||||
- name: Prepare rootfs
|
||||
run: make rootfs && make libc-test
|
||||
- name: Run fast tests
|
||||
if: github.event_name != 'schedule'
|
||||
run: cd tests && python3 linux_libc_test.py --libos --fast
|
||||
- name: Run full tests
|
||||
if: github.event_name == 'schedule'
|
||||
run: cd tests && python3 linux_libc_test.py --libos
|
||||
|
||||
linux-libc-test-baremetal:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
arch: [x86_64, riscv64]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- name: Pull prebuilt images
|
||||
run: git lfs pull -I prebuilt/linux/libc-libos.so
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: nightly-2022-01-20
|
||||
components: rust-src, llvm-tools-preview
|
||||
- if: matrix.arch == 'riscv64'
|
||||
uses: actions-rs/install@v0.1
|
||||
with:
|
||||
crate: cargo-binutils
|
||||
version: latest
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install musl-tools musl-dev ninja-build -y
|
||||
pip3 install -r tests/requirements.txt
|
||||
- name: Cache QEMU
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: qemu-6.1.0
|
||||
key: qemu-6.1.0-${{ matrix.arch }}
|
||||
- name: Install QEMU
|
||||
run: |
|
||||
[ ! -d qemu-6.1.0 ] && wget https://download.qemu.org/qemu-6.1.0.tar.xz \
|
||||
&& tar xJf qemu-6.1.0.tar.xz > /dev/null \
|
||||
&& cd qemu-6.1.0 && ./configure --target-list=${{ matrix.arch }}-softmmu && cd ..
|
||||
cd qemu-6.1.0 && sudo make install -j
|
||||
qemu-system-${{ matrix.arch }} --version
|
||||
- name: Prepare rootfs
|
||||
run: |
|
||||
if [ "${{ matrix.arch }}" = "x86_64" ]; then
|
||||
make baremetal-test-img
|
||||
elif [ "${{ matrix.arch }}" = "riscv64" ]; then
|
||||
make riscv-image
|
||||
fi
|
||||
- name: Run fast tests
|
||||
if: github.event_name != 'schedule'
|
||||
run: cd tests && python3 linux_libc_test.py --arch ${{ matrix.arch }} --fast
|
||||
- name: Run full tests
|
||||
if: github.event_name == 'schedule'
|
||||
run: cd tests && python3 linux_libc_test.py --arch ${{ matrix.arch }}
|
||||
|
|
@ -6,17 +6,10 @@ Cargo.lock
|
|||
/riscv_rootfs
|
||||
/prebuilt/linux/alpine*
|
||||
/prebuilt/linux/riscv64/prebuild*
|
||||
.idea
|
||||
scripts/linux/test-result.txt
|
||||
scripts/zircon/test-result.txt
|
||||
scripts/zircon/test-output.txt
|
||||
rusty-tags.vi
|
||||
*.img
|
||||
zCore/src/link_user.S
|
||||
scripts/rboot.conf
|
||||
stdout-baremetal-test
|
||||
stdout-zcore
|
||||
scripts/script.sh
|
||||
stdout-baremetal-test-rv64
|
||||
stdout-rv64
|
||||
zCore/src/platform/riscv/boot/kernel-vars.ld
|
||||
*.img
|
||||
*.log
|
||||
.idea
|
||||
.DS_Store
|
||||
.vscode/
|
||||
__pycache__
|
||||
|
|
|
|||
|
|
@ -4,3 +4,6 @@
|
|||
[submodule "rcore-user"]
|
||||
path = linux-user
|
||||
url = https://github.com/DeathWish5/rcore-user.git
|
||||
[submodule "tests"]
|
||||
path = tests
|
||||
url = https://github.com/rcore-os/zcore-tests.git
|
||||
|
|
|
|||
6
Makefile
6
Makefile
|
|
@ -100,9 +100,3 @@ baremetal-test-img: prebuilt/linux/$(ROOTFS_TAR) rcore-fs-fuse
|
|||
@cp prebuilt/linux/libc-libos.so rootfs/lib/ld-musl-x86_64.so.1
|
||||
@echo Resizing $(ARCH).img
|
||||
@qemu-img resize $(OUT_IMG) +5M
|
||||
|
||||
baremetal-test:
|
||||
@make -C zCore baremetal-test MODE=release LINUX=1 | tee stdout-baremetal-test
|
||||
|
||||
baremetal-test-rv64:
|
||||
@make -C zCore baremetal-test-rv64 ARCH=riscv64 MODE=release LINUX=1 ROOTPROC=$(ROOTPROC) | tee -a stdout-baremetal-test-rv64 | tee stdout-rv64
|
||||
|
|
|
|||
|
|
@ -29,9 +29,10 @@ Environments:
|
|||
* [Git LFS](https://git-lfs.github.com)
|
||||
|
||||
### Developing environment info
|
||||
- current rustc -- rustc 1.56.0-nightly (08095fc1f 2021-07-26)
|
||||
- current rust-toolchain -- nightly-2021-07-27
|
||||
- current qemu -- 5.2.0
|
||||
|
||||
- current rustc -- rustc 1.60.0-nightly (5e57faa78 2022-01-19)
|
||||
- current rust-toolchain -- nightly-2022-01-20
|
||||
- current qemu -- 5.2.0 -> 6.2.0
|
||||
|
||||
Clone repo and pull prebuilt fuchsia images:
|
||||
|
||||
|
|
|
|||
|
|
@ -36,4 +36,8 @@ acpi = "4.0"
|
|||
x2apic = "0.4"
|
||||
|
||||
[target.'cfg(any(target_arch = "riscv32", target_arch = "riscv64"))'.dependencies]
|
||||
<<<<<<< HEAD
|
||||
riscv = { git = "https://github.com/rust-embedded/riscv", rev = "cd31989ba1", features = ["inline-asm"] }
|
||||
=======
|
||||
riscv = { git = "https://github.com/rust-embedded/riscv", rev = "cd31989", features = ["inline-asm"] }
|
||||
>>>>>>> master
|
||||
|
|
|
|||
|
|
@ -125,7 +125,6 @@ impl<M: IoMapper> DevicetreeDriverBuilder<M> {
|
|||
.query_or_map(paddr as usize, size as usize)
|
||||
.ok_or(DeviceError::NoResources)
|
||||
});
|
||||
|
||||
use crate::irq::*;
|
||||
let dev = Device::Irq(match comp {
|
||||
#[cfg(any(target_arch = "riscv32", target_arch = "riscv64"))]
|
||||
|
|
@ -271,6 +270,7 @@ fn register_interrupt(
|
|||
"device-tree: register interrupts for {:?}: {:?}, irq_num={}",
|
||||
intc.dev, dev.dev, irq_num
|
||||
);
|
||||
|
||||
irq.register_device(irq_num, dev.dev.inner())?;
|
||||
// enable the interrupt after registration
|
||||
irq.unmask(irq_num)?;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
use core::arch::asm;
|
||||
use core::marker::PhantomData;
|
||||
|
||||
use super::Io;
|
||||
|
|
|
|||
|
|
@ -5,11 +5,16 @@ use lock::mutex::Mutex;
|
|||
use crate::prelude::IrqHandler;
|
||||
use crate::scheme::{IrqScheme, Scheme};
|
||||
use crate::{DeviceError, DeviceResult};
|
||||
use alloc::format;
|
||||
use alloc::string::String;
|
||||
use core::sync::atomic::{AtomicU8, Ordering};
|
||||
|
||||
const S_SOFT: usize = 1;
|
||||
const S_TIMER: usize = 5;
|
||||
const S_EXT: usize = 9;
|
||||
|
||||
static INTC_NUM: AtomicU8 = AtomicU8::new(0);
|
||||
|
||||
#[repr(usize)]
|
||||
pub enum ScauseIntCode {
|
||||
SupervisorSoft = S_SOFT,
|
||||
|
|
@ -18,6 +23,7 @@ pub enum ScauseIntCode {
|
|||
}
|
||||
|
||||
pub struct Intc {
|
||||
name: String,
|
||||
soft_handler: Mutex<Option<IrqHandler>>,
|
||||
timer_handler: Mutex<Option<IrqHandler>>,
|
||||
ext_handler: Mutex<Option<IrqHandler>>,
|
||||
|
|
@ -26,6 +32,7 @@ pub struct Intc {
|
|||
impl Intc {
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
name: format!("riscv-intc-cpu{}", INTC_NUM.fetch_add(1, Ordering::Relaxed)),
|
||||
soft_handler: Mutex::new(None),
|
||||
timer_handler: Mutex::new(None),
|
||||
ext_handler: Mutex::new(None),
|
||||
|
|
@ -56,7 +63,7 @@ impl Default for Intc {
|
|||
|
||||
impl Scheme for Intc {
|
||||
fn name(&self) -> &str {
|
||||
"riscv-intc"
|
||||
self.name.as_str()
|
||||
}
|
||||
|
||||
fn handle_irq(&self, cause: usize) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,12 @@
|
|||
use core::arch::asm;
|
||||
use core::ops::Range;
|
||||
<<<<<<< HEAD
|
||||
|
||||
// use spin::Mutex;
|
||||
use lock::mutex::Mutex;
|
||||
=======
|
||||
use spin::Mutex;
|
||||
>>>>>>> master
|
||||
|
||||
use crate::io::{Io, Mmio};
|
||||
use crate::prelude::IrqHandler;
|
||||
|
|
@ -17,6 +22,10 @@ const PLIC_CONTEXT_BASE: usize = 0x20_1000;
|
|||
const PLIC_CONTEXT_THRESHOLD: usize = 0x0;
|
||||
const PLIC_CONTEXT_CLAIM: usize = 0x4 / core::mem::size_of::<u32>();
|
||||
|
||||
const PLIC_ENABLE_HART_OFFSET: usize = 0x100 / core::mem::size_of::<u32>();
|
||||
const PLIC_PRIORITY_HART_OFFSET: usize = 0x2000 / core::mem::size_of::<u32>();
|
||||
const PLIC_CONTEXT_CLAIM_HART_OFFSET: usize = 0x2000 / core::mem::size_of::<u32>();
|
||||
|
||||
struct PlicUnlocked {
|
||||
priority_base: &'static mut Mmio<u32>,
|
||||
enable_base: &'static mut Mmio<u32>,
|
||||
|
|
@ -29,9 +38,15 @@ pub struct Plic {
|
|||
}
|
||||
|
||||
impl PlicUnlocked {
|
||||
/// Toggle irq enable on the current hart.
|
||||
fn toggle(&mut self, irq_num: usize, enable: bool) {
|
||||
debug_assert!(IRQ_RANGE.contains(&irq_num));
|
||||
let mmio = self.enable_base.add(irq_num / 32);
|
||||
let hart_id = cpu_id() as usize;
|
||||
let mmio = self
|
||||
.enable_base
|
||||
.add(PLIC_ENABLE_HART_OFFSET * hart_id)
|
||||
.add(irq_num / 32);
|
||||
|
||||
let mask = 1 << (irq_num % 32);
|
||||
if enable {
|
||||
mmio.write(mmio.read() | mask);
|
||||
|
|
@ -40,8 +55,14 @@ impl PlicUnlocked {
|
|||
}
|
||||
}
|
||||
|
||||
/// Ask the PLIC what type of interrupt is occurred on the current hart.
|
||||
fn pending_irq(&mut self) -> Option<usize> {
|
||||
let irq_num = self.context_base.add(PLIC_CONTEXT_CLAIM).read() as usize;
|
||||
let hart_id = cpu_id() as usize;
|
||||
let irq_num = self
|
||||
.context_base
|
||||
.add(PLIC_CONTEXT_CLAIM_HART_OFFSET * hart_id)
|
||||
.add(PLIC_CONTEXT_CLAIM)
|
||||
.read() as usize;
|
||||
if irq_num == 0 {
|
||||
None
|
||||
} else {
|
||||
|
|
@ -49,25 +70,32 @@ impl PlicUnlocked {
|
|||
}
|
||||
}
|
||||
|
||||
/// Tell the PLIC we've served this IRQ.
|
||||
fn eoi(&mut self, irq_num: usize) {
|
||||
debug_assert!(IRQ_RANGE.contains(&irq_num));
|
||||
let hart_id = cpu_id() as usize;
|
||||
self.context_base
|
||||
.add(PLIC_CONTEXT_CLAIM)
|
||||
.add(PLIC_CONTEXT_CLAIM_HART_OFFSET * hart_id)
|
||||
.write(irq_num as _);
|
||||
}
|
||||
|
||||
/// Set the priority for the irq_num.
|
||||
fn set_priority(&mut self, irq_num: usize, priority: u8) {
|
||||
debug_assert!(IRQ_RANGE.contains(&irq_num));
|
||||
self.priority_base.add(irq_num).write(priority as _);
|
||||
}
|
||||
|
||||
/// Set current hart's priority threshold to 0.
|
||||
fn set_threshold(&mut self, threshold: u8) {
|
||||
let hart_id = cpu_id() as usize;
|
||||
self.context_base
|
||||
.add(PLIC_PRIORITY_HART_OFFSET * hart_id)
|
||||
.add(PLIC_CONTEXT_THRESHOLD)
|
||||
.write(threshold as _);
|
||||
}
|
||||
|
||||
fn init(&mut self) {
|
||||
fn init_hart(&mut self) {
|
||||
self.set_threshold(0);
|
||||
}
|
||||
}
|
||||
|
|
@ -80,7 +108,7 @@ impl Plic {
|
|||
context_base: unsafe { Mmio::<u32>::from_base(base + PLIC_CONTEXT_BASE) },
|
||||
manager: IrqManager::new(IRQ_RANGE),
|
||||
};
|
||||
inner.init();
|
||||
inner.init_hart();
|
||||
Self {
|
||||
inner: Mutex::new(inner),
|
||||
}
|
||||
|
|
@ -137,4 +165,16 @@ impl IrqScheme for Plic {
|
|||
fn unregister(&self, irq_num: usize) -> DeviceResult {
|
||||
self.inner.lock().manager.unregister_handler(irq_num)
|
||||
}
|
||||
|
||||
fn init_hart(&self) {
|
||||
self.inner.lock().init_hart();
|
||||
}
|
||||
}
|
||||
|
||||
fn cpu_id() -> u8 {
|
||||
let mut cpu_id;
|
||||
unsafe {
|
||||
asm!("mv {0}, tp", out(reg) cpu_id);
|
||||
}
|
||||
cpu_id
|
||||
}
|
||||
|
|
|
|||
|
|
@ -214,6 +214,7 @@ impl<P> RTL8211F<P>
|
|||
where
|
||||
P: Provider,
|
||||
{
|
||||
#[allow(clippy::clone_on_copy)]
|
||||
pub fn new(mac_addr: &[u8; 6]) -> Self {
|
||||
assert_eq!(size_of::<dma_desc>(), 16);
|
||||
|
||||
|
|
@ -229,7 +230,7 @@ where
|
|||
(v_addr == 0x5fa)
|
||||
// mac addr is broadcast
|
||||
{
|
||||
let tokens: Vec<&str> = MAC_ADDR.split(":").collect();
|
||||
let tokens: Vec<&str> = MAC_ADDR.split(':').collect();
|
||||
for (i, s) in tokens.iter().enumerate() {
|
||||
mac[i] = u8::from_str_radix(s, 16).unwrap();
|
||||
}
|
||||
|
|
@ -1141,6 +1142,7 @@ where
|
|||
status = tx_dma_irq_status::tx_hard_error as i32;
|
||||
}
|
||||
|
||||
#[allow(clippy::collapsible_if)]
|
||||
/* 正常的 TX/RX NORMAL interrupts */
|
||||
if (intr_status & (TX_INT | RX_INT | RX_EARLY_INT | TX_UA_INT)) != 0 {
|
||||
if (intr_status & (TX_INT | RX_INT)) != 0 {
|
||||
|
|
@ -1200,7 +1202,7 @@ where
|
|||
(*desc).desc1 |= 0b11 << 27;
|
||||
desc = desc.add(1);
|
||||
}
|
||||
count = count + 1;
|
||||
count += 1;
|
||||
|
||||
if count > end {
|
||||
break;
|
||||
|
|
@ -1432,7 +1434,8 @@ where
|
|||
|
||||
match speed {
|
||||
1000 => ctrl &= !0x0C,
|
||||
100 | 10 | _ => {
|
||||
/*100 | 10 |*/
|
||||
_ => {
|
||||
ctrl |= 0x08;
|
||||
if (speed == 100) {
|
||||
ctrl |= 0x04;
|
||||
|
|
|
|||
|
|
@ -63,7 +63,6 @@ impl Scheme for RTLxInterface {
|
|||
}
|
||||
self.driver.0.lock().int_enable();
|
||||
//return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -146,8 +146,9 @@ impl<'a> core::ops::Deref for FrameBuffer<'a> {
|
|||
}
|
||||
|
||||
impl<'a> core::ops::DerefMut for FrameBuffer<'a> {
|
||||
#[allow(clippy::needless_borrow)]
|
||||
fn deref_mut(&mut self) -> &mut Self::Target {
|
||||
&mut self.raw
|
||||
self.raw
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -69,4 +69,10 @@ pub trait IrqScheme: Scheme {
|
|||
) -> DeviceResult {
|
||||
unimplemented!()
|
||||
}
|
||||
|
||||
/// Init irq for current cpu.
|
||||
/// Some IRQ hardware requires per-CPU initialization.
|
||||
fn init_hart(&self) {
|
||||
unimplemented!()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
#![allow(unused_imports)]
|
||||
|
||||
mod event_listener;
|
||||
mod id_allocator;
|
||||
mod irq_manager;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ spin = "0.9"
|
|||
lock = { git = "https://github.com/DeathWish5/kernel-sync" }
|
||||
cfg-if = "1.0"
|
||||
bitflags = "1.3"
|
||||
trapframe = "0.9.0"
|
||||
trapframe = "0.9"
|
||||
git-version = "0.3"
|
||||
numeric-enum-macro = "0.2"
|
||||
lazy_static = { version = "1.4", features = ["spin_no_std"] }
|
||||
|
|
@ -37,20 +37,20 @@ bitmap-allocator = { git = "https://github.com/rcore-os/bitmap-allocator", rev =
|
|||
# Bare-metal mode
|
||||
[target.'cfg(target_os = "none")'.dependencies]
|
||||
executor = { path = "../../../ASYNC/PreemptiveScheduler" }
|
||||
# executor = { git = "https://github.com/rcore-os/executor.git", rev = "04b6b7b" }
|
||||
# executor = { git = "https://github.com/rcore-os/executor.git", rev = "85b9335" }
|
||||
naive-timer = "0.2.0"
|
||||
|
||||
# All mode on x86_64
|
||||
[target.'cfg(target_arch = "x86_64")'.dependencies]
|
||||
x86 = "0.43"
|
||||
x86 = "0.46"
|
||||
x86_64 = "0.14"
|
||||
|
||||
# Bare-metal mode on x86_64
|
||||
[target.'cfg(all(target_os = "none", target_arch = "x86_64"))'.dependencies]
|
||||
uefi = "0.11"
|
||||
raw-cpuid = "9.0"
|
||||
x86-smpboot = { git = "https://github.com/rcore-os/x86-smpboot", rev = "43ffedf" }
|
||||
x86-smpboot = { git = "https://github.com/rcore-os/x86-smpboot", rev = "1069df3" }
|
||||
|
||||
# Bare-metal mode on riscv64
|
||||
[target.'cfg(all(target_os = "none", target_arch = "riscv64"))'.dependencies]
|
||||
riscv = { git = "https://github.com/rust-embedded/riscv", rev = "cd31989ba1", features = ["inline-asm"] }
|
||||
riscv = { git = "https://github.com/rust-embedded/riscv", rev = "cd31989", features = ["inline-asm"] }
|
||||
|
|
|
|||
|
|
@ -7,15 +7,26 @@ pub(super) static CPU_FREQ_MHZ: InitOnce<u16> = InitOnce::new_with_default(10);
|
|||
hal_fn_impl! {
|
||||
impl mod crate::hal_fn::cpu {
|
||||
fn cpu_id() -> u8 {
|
||||
<<<<<<< HEAD
|
||||
let mut cpu_id: i64;
|
||||
unsafe {
|
||||
asm!("mv {0}, tp", out(reg) cpu_id);
|
||||
}
|
||||
(cpu_id & 0xff) as u8
|
||||
=======
|
||||
let mut cpu_id;
|
||||
unsafe { core::arch::asm!("mv {0}, tp", out(reg) cpu_id) };
|
||||
cpu_id
|
||||
>>>>>>> master
|
||||
}
|
||||
|
||||
fn cpu_frequency() -> u16 {
|
||||
*CPU_FREQ_MHZ
|
||||
}
|
||||
|
||||
fn reset() -> ! {
|
||||
info!("shutdown...");
|
||||
super::sbi::shutdown()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
use alloc::boxed::Box;
|
||||
use alloc::format;
|
||||
|
||||
use zcore_drivers::builder::{DevicetreeDriverBuilder, IoMapper};
|
||||
use zcore_drivers::irq::riscv::ScauseIntCode;
|
||||
|
|
@ -62,7 +63,7 @@ pub(super) fn init() -> DeviceResult {
|
|||
}
|
||||
|
||||
let irq = drivers::all_irq()
|
||||
.find("riscv-intc")
|
||||
.find(format!("riscv-intc-cpu{}", crate::cpu::cpu_id()).as_str())
|
||||
.expect("IRQ device 'riscv-intc' not initialized!");
|
||||
// register soft interrupts handler
|
||||
irq.register_handler(
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
mod drivers;
|
||||
mod sbi;
|
||||
mod trap;
|
||||
|
||||
pub mod config;
|
||||
pub mod cpu;
|
||||
pub mod interrupt;
|
||||
pub mod mem;
|
||||
pub mod sbi;
|
||||
pub mod timer;
|
||||
pub mod vm;
|
||||
|
||||
use alloc::{string::String, vec::Vec};
|
||||
use alloc::{boxed::Box, format, string::String, vec::Vec};
|
||||
use core::ops::Range;
|
||||
use zcore_drivers::irq::riscv::ScauseIntCode;
|
||||
use zcore_drivers::utils::devicetree::Devicetree;
|
||||
|
||||
use crate::{mem::phys_to_virt, utils::init_once::InitOnce, PhysAddr};
|
||||
|
|
@ -55,4 +56,30 @@ pub fn primary_init() {
|
|||
timer::init();
|
||||
}
|
||||
|
||||
pub fn secondary_init() {}
|
||||
pub fn secondary_init() {
|
||||
vm::init();
|
||||
let intc = crate::drivers::all_irq()
|
||||
.find(format!("riscv-intc-cpu{}", crate::cpu::cpu_id()).as_str())
|
||||
.expect("IRQ device 'riscv-intc' not initialized!");
|
||||
|
||||
// register soft interrupts handler
|
||||
intc.register_handler(
|
||||
ScauseIntCode::SupervisorSoft as _,
|
||||
Box::new(trap::super_soft),
|
||||
)
|
||||
.unwrap();
|
||||
// register timer interrupts handler
|
||||
intc.register_handler(
|
||||
ScauseIntCode::SupervisorTimer as _,
|
||||
Box::new(trap::super_timer),
|
||||
)
|
||||
.unwrap();
|
||||
intc.unmask(ScauseIntCode::SupervisorSoft as _).unwrap();
|
||||
intc.unmask(ScauseIntCode::SupervisorTimer as _).unwrap();
|
||||
|
||||
let plic = crate::drivers::all_irq()
|
||||
.find("riscv-plic")
|
||||
.expect("IRQ device 'riscv-plic' not initialized!");
|
||||
plic.init_hart();
|
||||
timer::init();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
#![allow(dead_code)]
|
||||
|
||||
use core::arch::asm;
|
||||
|
||||
// Legacy Extensions (EIDs 0x00 - 0x0F)
|
||||
const SBI_SET_TIMER: usize = 0;
|
||||
const SBI_CONSOLE_PUTCHAR: usize = 1;
|
||||
const SBI_CONSOLE_GETCHAR: usize = 2;
|
||||
|
|
@ -12,43 +10,89 @@ const SBI_REMOTE_SFENCE_VMA: usize = 6;
|
|||
const SBI_REMOTE_SFENCE_VMA_ASID: usize = 7;
|
||||
const SBI_SHUTDOWN: usize = 8;
|
||||
|
||||
// Hart State Management Extension
|
||||
const HSM_EID: usize = 0x48534D;
|
||||
const SBI_HART_START_FID: usize = 0; // SBI Verson=0.2
|
||||
const SBI_HART_STOP_FID: usize = 1; // SBI Verson=0.2
|
||||
const SBI_HART_GET_STATUS_FID: usize = 2; // SBI Verson=0.2
|
||||
const SBI_HART_SUSPEND_FID: usize = 3; // SBI Verson=0.3
|
||||
|
||||
// SBI Error Code
|
||||
pub const SBI_SUCCESS: usize = 0;
|
||||
pub const SBI_ERR_FAILED: usize = usize::MAX; // -1
|
||||
pub const SBI_ERR_NOT_SUPPORTED: usize = usize::MAX - 1; // -2
|
||||
pub const SBI_ERR_INVALID_PARAM: usize = usize::MAX - 2; // -3
|
||||
pub const SBI_ERR_DENIED: usize = usize::MAX - 3; // -4
|
||||
pub const SBI_ERR_INVALID_ADDRESS: usize = usize::MAX - 4; // -5
|
||||
pub const SBI_ERR_ALREADY_AVAILABLE: usize = usize::MAX - 5; // -6
|
||||
pub const SBI_ERR_ALREADY_STARTED: usize = usize::MAX - 6; // -7
|
||||
pub const SBI_ERR_ALREADY_STOPPED: usize = usize::MAX - 7; // -8
|
||||
|
||||
#[inline(always)]
|
||||
fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize {
|
||||
fn sbi_call(eid: usize, fid: usize, arg0: usize, arg1: usize, arg2: usize) -> usize {
|
||||
let ret;
|
||||
unsafe {
|
||||
asm!("ecall",
|
||||
core::arch::asm!("ecall",
|
||||
in("a0") arg0,
|
||||
in("a1") arg1,
|
||||
in("a2") arg2,
|
||||
in("a7") which,
|
||||
in("a6") fid,
|
||||
in("a7") eid,
|
||||
lateout("a0") ret,
|
||||
);
|
||||
}
|
||||
ret
|
||||
}
|
||||
|
||||
pub fn console_putchar(ch: usize) {
|
||||
sbi_call(SBI_CONSOLE_PUTCHAR, ch, 0, 0);
|
||||
pub fn console_putchar(ch: usize) -> usize {
|
||||
sbi_call(SBI_CONSOLE_PUTCHAR, 0, ch, 0, 0)
|
||||
}
|
||||
|
||||
pub fn console_getchar() -> usize {
|
||||
sbi_call(SBI_CONSOLE_GETCHAR, 0, 0, 0)
|
||||
sbi_call(SBI_CONSOLE_GETCHAR, 0, 0, 0, 0)
|
||||
}
|
||||
|
||||
pub fn set_timer(stime_value: u64) {
|
||||
pub fn set_timer(stime_value: u64) -> usize {
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
sbi_call(SBI_SET_TIMER, stime_value as usize, (stime_value >> 32), 0);
|
||||
return sbi_call(
|
||||
SBI_SET_TIMER,
|
||||
0,
|
||||
stime_value as usize,
|
||||
(stime_value >> 32),
|
||||
0,
|
||||
);
|
||||
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
sbi_call(SBI_SET_TIMER, stime_value as usize, 0, 0);
|
||||
sbi_call(SBI_SET_TIMER, 0, stime_value as usize, 0, 0)
|
||||
}
|
||||
|
||||
pub fn clear_ipi() {
|
||||
sbi_call(SBI_CLEAR_IPI, 0, 0, 0);
|
||||
pub fn clear_ipi() -> usize {
|
||||
sbi_call(SBI_CLEAR_IPI, 0, 0, 0, 0)
|
||||
}
|
||||
|
||||
pub fn send_ipi(sipi_value: usize) {
|
||||
sbi_call(SBI_SEND_IPI, sipi_value, 0, 0);
|
||||
pub fn send_ipi(sipi_value: usize) -> usize {
|
||||
sbi_call(SBI_SEND_IPI, 0, sipi_value, 0, 0)
|
||||
}
|
||||
|
||||
pub fn shutdown() -> ! {
|
||||
sbi_call(SBI_SHUTDOWN, 0, 0, 0, 0);
|
||||
unreachable!();
|
||||
}
|
||||
|
||||
/// executing the target hart in supervisor-mode at address
|
||||
/// specified by start_addr parameter
|
||||
///
|
||||
/// The opaque parameter is a XLEN-bit value which will be
|
||||
/// set in the a1 register when the hart starts executing
|
||||
/// at start_addr.
|
||||
pub fn hart_start(hartid: usize, start_addr: usize, opaque: usize) -> usize {
|
||||
sbi_call(HSM_EID, SBI_HART_START_FID, hartid, start_addr, opaque)
|
||||
}
|
||||
|
||||
/// stop executing the calling hart in supervisor-mode and return
|
||||
/// it’s ownership to the SBI implementation.
|
||||
pub fn hart_stop() -> usize {
|
||||
sbi_call(HSM_EID, SBI_HART_STOP_FID, 0, 0, 0)
|
||||
}
|
||||
|
||||
hal_fn_impl! {
|
||||
|
|
|
|||
|
|
@ -25,13 +25,18 @@ pub(super) fn super_soft() {
|
|||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn trap_handler(tf: &mut TrapFrame) {
|
||||
// log::warn!("in trap handler");
|
||||
let scause = scause::read();
|
||||
|
||||
trace!("trap happened: {:?}", TrapReason::from(scause));
|
||||
|
||||
match TrapReason::from(scause) {
|
||||
TrapReason::SoftwareBreakpoint => breakpoint(&mut tf.sepc),
|
||||
TrapReason::PageFault(vaddr, flags) => crate::KHANDLER.handle_page_fault(vaddr, flags),
|
||||
TrapReason::PageFault(vaddr, flags) => {
|
||||
// log::warn!("sepc={:x}", riscv::register::sepc::read());
|
||||
// log::warn!("sstatus.spp={:?}", riscv::register::sstatus::read().spp());
|
||||
crate::KHANDLER.handle_page_fault(vaddr, flags)
|
||||
}
|
||||
TrapReason::Interrupt(vector) => crate::interrupt::handle_irq(vector),
|
||||
other => panic!("Undefined trap: {:x?} {:#x?}", other, tf),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,5 +22,14 @@ hal_fn_impl! {
|
|||
.max(DEFAULT)
|
||||
})
|
||||
}
|
||||
|
||||
fn reset() -> ! {
|
||||
info!("shutdown...");
|
||||
loop {
|
||||
use zcore_drivers::io::{Io, Pio};
|
||||
Pio::<u16>::new(0x604).write(0x2000);
|
||||
super::interrupt::wait_for_interrupt();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ pub fn primary_init() {
|
|||
let stack_fn = |pid: usize| -> usize {
|
||||
// split and reuse the current stack
|
||||
let mut stack: usize;
|
||||
unsafe { asm!("mov {}, rsp", out(reg) stack) };
|
||||
unsafe { core::arch::asm!("mov {}, rsp", out(reg) stack) };
|
||||
stack -= 0x4000 * pid;
|
||||
stack
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,16 +1,6 @@
|
|||
//! Functions only available on x86 platforms.
|
||||
|
||||
use x86_64::instructions::port::Port;
|
||||
|
||||
/// IO Port in instruction
|
||||
pub fn pio_read(port: u16) -> u32 {
|
||||
unsafe { Port::new(port).read() }
|
||||
}
|
||||
|
||||
/// IO Port out instruction
|
||||
pub fn pio_write(port: u16, value: u32) {
|
||||
unsafe { Port::new(port).write(value) }
|
||||
}
|
||||
pub use zcore_drivers::io::{Io, Pio};
|
||||
|
||||
/// Get physical address of `acpi_rsdp` and `smbios` on x86_64.
|
||||
pub fn pc_firmware_tables() -> (u64, u64) {
|
||||
|
|
|
|||
|
|
@ -28,9 +28,11 @@ hal_fn_impl! {
|
|||
}
|
||||
|
||||
fn secondary_init() {
|
||||
info!("Secondary CPU {} init...", crate::cpu::cpu_id());
|
||||
// info!("Secondary CPU {} init...", crate::cpu::cpu_id());
|
||||
// we can't print anything here, see reason: zcore/main.rs::secondary_main()
|
||||
unsafe { trapframe::init() };
|
||||
super::arch::secondary_init();
|
||||
// now can print
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,10 @@ hal_fn_impl! {
|
|||
KCONFIG.phys_to_virt_offset + paddr
|
||||
}
|
||||
|
||||
fn virt_to_phys(vaddr: VirtAddr) -> PhysAddr {
|
||||
vaddr - KCONFIG.phys_to_virt_offset
|
||||
}
|
||||
|
||||
fn free_pmem_regions() -> Vec<Range<PhysAddr>> {
|
||||
super::arch::mem::free_pmem_regions()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@ cfg_if! {
|
|||
pub use self::arch::special as x86_64;
|
||||
} else if #[cfg(any(target_arch = "riscv32", target_arch = "riscv64"))] {
|
||||
#[path = "arch/riscv/mod.rs"]
|
||||
mod arch;
|
||||
pub mod arch;
|
||||
pub use self::arch::sbi;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,9 @@ hal_fn_def! {
|
|||
|
||||
/// Current CPU frequency in MHz.
|
||||
pub fn cpu_frequency() -> u16 { 3000 }
|
||||
|
||||
/// Shutdown/reboot the machine.
|
||||
pub fn reset() -> !;
|
||||
}
|
||||
|
||||
/// Physical memory operations.
|
||||
|
|
@ -44,6 +47,9 @@ hal_fn_def! {
|
|||
/// Convert physical address to virtual address.
|
||||
pub(crate) fn phys_to_virt(paddr: PhysAddr) -> VirtAddr;
|
||||
|
||||
/// Convert virtual address to physical address.
|
||||
pub fn virt_to_phys(vaddr: VirtAddr) -> PhysAddr;
|
||||
|
||||
/// Returns all free physical memory regions.
|
||||
pub fn free_pmem_regions() -> Vec<Range<PhysAddr>>;
|
||||
|
||||
|
|
@ -133,8 +139,8 @@ hal_fn_def! {
|
|||
pub fn msi_register_handler(block: Range<usize>, msi_id: usize, handler: IrqHandler) -> HalResult;
|
||||
}
|
||||
|
||||
pub(crate) mod console {
|
||||
pub(crate) fn console_write_early(_s: &str) {}
|
||||
pub mod console {
|
||||
pub fn console_write_early(_s: &str) {}
|
||||
}
|
||||
|
||||
/// Thread spawning.
|
||||
|
|
|
|||
|
|
@ -5,5 +5,10 @@ hal_fn_impl! {
|
|||
fn cpu_id() -> u8 {
|
||||
std::thread::current().id().as_u64().get() as u8
|
||||
}
|
||||
|
||||
fn reset() -> ! {
|
||||
info!("shutdown...");
|
||||
std::process::exit(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ extern "C" fn sig_handler(_sig: libc::c_int, _si: *mut libc::siginfo_t, uc: *mut
|
|||
// segmentation violation is rethrown.
|
||||
_ => {
|
||||
// switch back to kernel gs
|
||||
asm!(
|
||||
core::arch::asm!(
|
||||
"
|
||||
mov rdi, gs:48
|
||||
syscall
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ use alloc::boxed::Box;
|
|||
use alloc::vec::Vec;
|
||||
use bitvec::prelude::{BitVec, Lsb0};
|
||||
use core::future::Future;
|
||||
use core::mem::size_of;
|
||||
use core::pin::Pin;
|
||||
use core::task::{Context, Poll};
|
||||
use core::time::Duration;
|
||||
|
|
@ -282,7 +281,7 @@ bitflags! {
|
|||
}
|
||||
|
||||
/// fd size per item
|
||||
const FD_PER_ITEM: usize = 8 * size_of::<u32>();
|
||||
const FD_PER_ITEM: usize = u32::BITS as usize;
|
||||
/// max Fdset size
|
||||
const MAX_FDSET_SIZE: usize = 1024 / FD_PER_ITEM;
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,10 @@ use alloc::sync::Arc;
|
|||
use core::convert::TryFrom;
|
||||
|
||||
use kernel_hal::user::{IoVecIn, IoVecOut, UserInOutPtr, UserInPtr, UserOutPtr};
|
||||
#[cfg(target_os = "none")]
|
||||
use kernel_hal::vm::PagingError;
|
||||
use kernel_hal::vm::PagingResult;
|
||||
use kernel_hal::MMUFlags;
|
||||
use linux_object::error::{LxError, SysResult};
|
||||
use linux_object::fs::FileDesc;
|
||||
use linux_object::process::{wait_child, wait_child_any, LinuxProcess, ProcessExt, RLimit};
|
||||
|
|
@ -61,9 +65,87 @@ pub struct Syscall<'a> {
|
|||
}
|
||||
|
||||
impl Syscall<'_> {
|
||||
#[cfg(not(target_os = "none"))]
|
||||
fn check_pagefault(&self, _vaddr: usize, _flags: MMUFlags) -> PagingResult<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(target_os = "none")]
|
||||
fn check_pagefault(&self, vaddr: usize, flags: MMUFlags) -> PagingResult<()> {
|
||||
let vmar = self.thread.proc().vmar();
|
||||
if !vmar.contains(vaddr) {
|
||||
return Err(PagingError::NoMemory);
|
||||
}
|
||||
|
||||
let mut is_handle_read_pagefault = flags.contains(MMUFlags::READ);
|
||||
let mut is_handle_write_pagefault = flags.contains(MMUFlags::WRITE);
|
||||
|
||||
match vmar.get_vaddr_flags(vaddr) {
|
||||
Ok(vaddr_flags) => {
|
||||
is_handle_read_pagefault &= !vaddr_flags.contains(MMUFlags::READ);
|
||||
is_handle_write_pagefault &= !vaddr_flags.contains(MMUFlags::WRITE);
|
||||
}
|
||||
Err(PagingError::NotMapped) => {
|
||||
is_handle_read_pagefault &= true;
|
||||
is_handle_write_pagefault &= true;
|
||||
}
|
||||
Err(PagingError::NoMemory) => {
|
||||
error!("check_pagefault: vaddr(0x{:x}) NoMemory", vaddr);
|
||||
return Err(PagingError::NoMemory);
|
||||
}
|
||||
Err(PagingError::AlreadyMapped) => {
|
||||
panic!("get_vaddr_flags error!!!");
|
||||
}
|
||||
}
|
||||
|
||||
if is_handle_read_pagefault {
|
||||
if let Err(err) = vmar.handle_page_fault(vaddr, MMUFlags::READ) {
|
||||
panic!("into_out_userptr handle_page_fault: {:?}", err);
|
||||
}
|
||||
}
|
||||
|
||||
if is_handle_write_pagefault {
|
||||
if let Err(err) = vmar.handle_page_fault(vaddr, MMUFlags::WRITE) {
|
||||
panic!("into_out_userptr handle_page_fault: {:?}", err);
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// convert a usize num to in and out userptr
|
||||
pub fn into_inout_userptr<T>(&self, vaddr: usize) -> PagingResult<UserInOutPtr<T>> {
|
||||
if 0 == vaddr {
|
||||
return Ok(vaddr.into());
|
||||
}
|
||||
|
||||
let access_flags = MMUFlags::READ | MMUFlags::WRITE;
|
||||
self.check_pagefault(vaddr, access_flags)?;
|
||||
Ok(vaddr.into())
|
||||
}
|
||||
|
||||
/// convert a usize num to in userptr
|
||||
pub fn into_in_userptr<T>(&self, vaddr: usize) -> PagingResult<UserInPtr<T>> {
|
||||
if 0 == vaddr {
|
||||
return Ok(vaddr.into());
|
||||
}
|
||||
|
||||
self.check_pagefault(vaddr, MMUFlags::READ)?;
|
||||
Ok(vaddr.into())
|
||||
}
|
||||
|
||||
/// convert a usize num to out userptr
|
||||
pub fn into_out_userptr<T>(&self, vaddr: usize) -> PagingResult<UserOutPtr<T>> {
|
||||
if 0 == vaddr {
|
||||
return Ok(vaddr.into());
|
||||
}
|
||||
|
||||
self.check_pagefault(vaddr, MMUFlags::WRITE)?;
|
||||
Ok(vaddr.into())
|
||||
}
|
||||
|
||||
/// syscall entry function
|
||||
pub async fn syscall(&mut self, num: u32, args: [usize; 6]) -> isize {
|
||||
debug!(
|
||||
trace!(
|
||||
"pid: {} syscall: num={}, args={:x?}",
|
||||
self.zircon_process().id(),
|
||||
num,
|
||||
|
|
@ -78,54 +160,121 @@ impl Syscall<'_> {
|
|||
};
|
||||
let [a0, a1, a2, a3, a4, a5] = args;
|
||||
let ret = match sys_type {
|
||||
Sys::READ => self.sys_read(a0.into(), a1.into(), a2).await,
|
||||
Sys::WRITE => self.sys_write(a0.into(), a1.into(), a2),
|
||||
Sys::OPENAT => self.sys_openat(a0.into(), a1.into(), a2, a3),
|
||||
Sys::READ => {
|
||||
self.sys_read(a0.into(), self.into_out_userptr(a1).unwrap(), a2)
|
||||
.await
|
||||
}
|
||||
Sys::WRITE => self.sys_write(a0.into(), self.into_in_userptr(a1).unwrap(), a2),
|
||||
Sys::OPENAT => self.sys_openat(a0.into(), self.into_in_userptr(a1).unwrap(), a2, a3),
|
||||
Sys::CLOSE => self.sys_close(a0.into()),
|
||||
Sys::FSTAT => self.sys_fstat(a0.into(), a1.into()),
|
||||
Sys::NEWFSTATAT => self.sys_fstatat(a0.into(), a1.into(), a2.into(), a3),
|
||||
Sys::FSTAT => self.sys_fstat(a0.into(), self.into_out_userptr(a1).unwrap()),
|
||||
Sys::NEWFSTATAT => self.sys_fstatat(
|
||||
a0.into(),
|
||||
self.into_in_userptr(a1).unwrap(),
|
||||
self.into_out_userptr(a2).unwrap(),
|
||||
a3,
|
||||
),
|
||||
Sys::LSEEK => self.sys_lseek(a0.into(), a1 as i64, a2 as u8),
|
||||
Sys::IOCTL => self.sys_ioctl(a0.into(), a1, a2, a3, a4),
|
||||
Sys::PREAD64 => self.sys_pread(a0.into(), a1.into(), a2, a3 as _).await,
|
||||
Sys::PWRITE64 => self.sys_pwrite(a0.into(), a1.into(), a2, a3 as _),
|
||||
Sys::READV => self.sys_readv(a0.into(), a1.into(), a2).await,
|
||||
Sys::WRITEV => self.sys_writev(a0.into(), a1.into(), a2),
|
||||
Sys::SENDFILE => self.sys_sendfile(a0.into(), a1.into(), a2.into(), a3).await,
|
||||
Sys::PREAD64 => {
|
||||
self.sys_pread(a0.into(), self.into_out_userptr(a1).unwrap(), a2, a3 as _)
|
||||
.await
|
||||
}
|
||||
Sys::PWRITE64 => {
|
||||
self.sys_pwrite(a0.into(), self.into_in_userptr(a1).unwrap(), a2, a3 as _)
|
||||
}
|
||||
Sys::READV => {
|
||||
self.sys_readv(a0.into(), self.into_in_userptr(a1).unwrap(), a2)
|
||||
.await
|
||||
}
|
||||
Sys::WRITEV => self.sys_writev(a0.into(), self.into_in_userptr(a1).unwrap(), a2),
|
||||
Sys::SENDFILE => {
|
||||
self.sys_sendfile(
|
||||
a0.into(),
|
||||
a1.into(),
|
||||
self.into_inout_userptr(a2).unwrap(),
|
||||
a3,
|
||||
)
|
||||
.await
|
||||
}
|
||||
Sys::FCNTL => self.sys_fcntl(a0.into(), a1, a2),
|
||||
Sys::FLOCK => self.sys_flock(a0.into(), a1),
|
||||
Sys::FSYNC => self.sys_fsync(a0.into()),
|
||||
Sys::FDATASYNC => self.sys_fdatasync(a0.into()),
|
||||
Sys::TRUNCATE => self.sys_truncate(a0.into(), a1),
|
||||
Sys::TRUNCATE => self.sys_truncate(self.into_in_userptr(a0).unwrap(), a1),
|
||||
Sys::FTRUNCATE => self.sys_ftruncate(a0.into(), a1),
|
||||
Sys::GETDENTS64 => self.sys_getdents64(a0.into(), a1.into(), a2),
|
||||
Sys::GETCWD => self.sys_getcwd(a0.into(), a1),
|
||||
Sys::CHDIR => self.sys_chdir(a0.into()),
|
||||
Sys::RENAMEAT => self.sys_renameat(a0.into(), a1.into(), a2.into(), a3.into()),
|
||||
Sys::MKDIRAT => self.sys_mkdirat(a0.into(), a1.into(), a2),
|
||||
Sys::LINKAT => self.sys_linkat(a0.into(), a1.into(), a2.into(), a3.into(), a4),
|
||||
Sys::UNLINKAT => self.sys_unlinkat(a0.into(), a1.into(), a2),
|
||||
Sys::GETDENTS64 => {
|
||||
self.sys_getdents64(a0.into(), self.into_out_userptr(a1).unwrap(), a2)
|
||||
}
|
||||
Sys::GETCWD => self.sys_getcwd(self.into_out_userptr(a0).unwrap(), a1),
|
||||
Sys::CHDIR => self.sys_chdir(self.into_in_userptr(a0).unwrap()),
|
||||
Sys::RENAMEAT => self.sys_renameat(
|
||||
a0.into(),
|
||||
self.into_in_userptr(a1).unwrap(),
|
||||
a2.into(),
|
||||
self.into_in_userptr(a3).unwrap(),
|
||||
),
|
||||
Sys::MKDIRAT => self.sys_mkdirat(a0.into(), self.into_in_userptr(a1).unwrap(), a2),
|
||||
Sys::LINKAT => self.sys_linkat(
|
||||
a0.into(),
|
||||
self.into_in_userptr(a1).unwrap(),
|
||||
a2.into(),
|
||||
self.into_in_userptr(a3).unwrap(),
|
||||
a4,
|
||||
),
|
||||
Sys::UNLINKAT => self.sys_unlinkat(a0.into(), self.into_in_userptr(a1).unwrap(), a2),
|
||||
Sys::SYMLINKAT => self.unimplemented("symlinkat", Err(LxError::EACCES)),
|
||||
Sys::READLINKAT => self.sys_readlinkat(a0.into(), a1.into(), a2.into(), a3),
|
||||
Sys::READLINKAT => self.sys_readlinkat(
|
||||
a0.into(),
|
||||
self.into_in_userptr(a1).unwrap(),
|
||||
self.into_out_userptr(a2).unwrap(),
|
||||
a3,
|
||||
),
|
||||
Sys::FCHMOD => self.unimplemented("fchmod", Ok(0)),
|
||||
Sys::FCHMODAT => self.unimplemented("fchmodat", Ok(0)),
|
||||
Sys::FCHOWN => self.unimplemented("fchown", Ok(0)),
|
||||
Sys::FCHOWNAT => self.unimplemented("fchownat", Ok(0)),
|
||||
Sys::FACCESSAT => self.sys_faccessat(a0.into(), a1.into(), a2, a3),
|
||||
Sys::FACCESSAT => {
|
||||
self.sys_faccessat(a0.into(), self.into_in_userptr(a1).unwrap(), a2, a3)
|
||||
}
|
||||
Sys::DUP => self.sys_dup(a0.into()),
|
||||
Sys::DUP3 => self.sys_dup2(a0.into(), a1.into()), // TODO: handle `flags`
|
||||
Sys::PIPE2 => self.sys_pipe2(a0.into(), a1), // TODO: handle `flags`
|
||||
Sys::UTIMENSAT => self.sys_utimensat(a0.into(), a1.into(), a2.into(), a3),
|
||||
Sys::UTIMENSAT => {
|
||||
self.sys_utimensat(a0.into(), self.into_in_userptr(a1).unwrap(), a2.into(), a3)
|
||||
}
|
||||
Sys::COPY_FILE_RANGE => {
|
||||
self.sys_copy_file_range(a0.into(), a1.into(), a2.into(), a3.into(), a4, a5)
|
||||
.await
|
||||
self.sys_copy_file_range(
|
||||
a0.into(),
|
||||
self.into_inout_userptr(a1).unwrap(),
|
||||
a2.into(),
|
||||
self.into_inout_userptr(a3).unwrap(),
|
||||
a4,
|
||||
a5,
|
||||
)
|
||||
.await
|
||||
}
|
||||
|
||||
// io multiplexing
|
||||
Sys::PSELECT6 => {
|
||||
self.sys_pselect6(a0, a1.into(), a2.into(), a3.into(), a4.into(), a5)
|
||||
.await
|
||||
self.sys_pselect6(
|
||||
a0,
|
||||
self.into_inout_userptr(a1).unwrap(),
|
||||
self.into_inout_userptr(a2).unwrap(),
|
||||
self.into_inout_userptr(a3).unwrap(),
|
||||
self.into_in_userptr(a4).unwrap(),
|
||||
a5,
|
||||
)
|
||||
.await
|
||||
}
|
||||
Sys::PPOLL => self.sys_ppoll(a0.into(), a1, a2.into()).await, // ignore sigmask
|
||||
Sys::PPOLL => {
|
||||
self.sys_ppoll(
|
||||
self.into_inout_userptr(a0).unwrap(),
|
||||
a1,
|
||||
self.into_in_userptr(a2).unwrap(),
|
||||
)
|
||||
.await
|
||||
} // ignore sigmask
|
||||
// Sys::EPOLL_CREATE1 => self.sys_epoll_create1(a0),
|
||||
// Sys::EPOLL_CTL => self.sys_epoll_ctl(a0, a1, a2, a3.into()),
|
||||
// Sys::EPOLL_PWAIT => self.sys_epoll_pwait(a0, a1.into(), a2, a3, a4),
|
||||
|
|
@ -147,10 +296,23 @@ impl Syscall<'_> {
|
|||
Sys::MADVISE => self.unimplemented("madvise", Ok(0)),
|
||||
|
||||
// signal
|
||||
Sys::RT_SIGACTION => self.sys_rt_sigaction(a0, a1.into(), a2.into(), a3),
|
||||
Sys::RT_SIGPROCMASK => self.sys_rt_sigprocmask(a0 as _, a1.into(), a2.into(), a3),
|
||||
Sys::RT_SIGACTION => self.sys_rt_sigaction(
|
||||
a0,
|
||||
self.into_in_userptr(a1).unwrap(),
|
||||
self.into_out_userptr(a2).unwrap(),
|
||||
a3,
|
||||
),
|
||||
Sys::RT_SIGPROCMASK => self.sys_rt_sigprocmask(
|
||||
a0 as _,
|
||||
self.into_in_userptr(a1).unwrap(),
|
||||
self.into_out_userptr(a2).unwrap(),
|
||||
a3,
|
||||
),
|
||||
// Sys::RT_SIGRETURN => self.sys_rt_sigreturn(),
|
||||
Sys::SIGALTSTACK => self.sys_sigaltstack(a0.into(), a1.into()),
|
||||
Sys::SIGALTSTACK => self.sys_sigaltstack(
|
||||
self.into_in_userptr(a0).unwrap(),
|
||||
self.into_out_userptr(a1).unwrap(),
|
||||
),
|
||||
// Sys::KILL => self.sys_kill(a0, a1),
|
||||
|
||||
// schedule
|
||||
|
|
@ -160,9 +322,23 @@ impl Syscall<'_> {
|
|||
// socket
|
||||
Sys::SOCKET => self.sys_socket(a0, a1, a2),
|
||||
Sys::CONNECT => self.sys_connect(a0, a1.into(), a2).await,
|
||||
Sys::ACCEPT => self.sys_accept(a0, a1.into(), a2.into()).await,
|
||||
Sys::ACCEPT => {
|
||||
self.sys_accept(
|
||||
a0,
|
||||
self.into_out_userptr(a1).unwrap(),
|
||||
self.into_inout_userptr(a2).unwrap(),
|
||||
)
|
||||
.await
|
||||
}
|
||||
// Sys::ACCEPT4 => self.sys_accept(a0, a1.into(), a2.into()), // use accept for accept4
|
||||
Sys::SENDTO => self.sys_sendto(a0, a1.into(), a2, a3, a4.into(), a5),
|
||||
Sys::SENDTO => self.sys_sendto(
|
||||
a0,
|
||||
self.into_in_userptr(a1).unwrap(),
|
||||
a2,
|
||||
a3,
|
||||
self.into_in_userptr(a4).unwrap(),
|
||||
a5,
|
||||
),
|
||||
Sys::RECVFROM => {
|
||||
self.sys_recvfrom(a0, a1.into(), a2, a3, a4.into(), a5.into())
|
||||
.await
|
||||
|
|
@ -170,38 +346,70 @@ impl Syscall<'_> {
|
|||
Sys::SENDMSG => self.unimplemented("sys_sendmsg(),", Ok(0)),
|
||||
Sys::RECVMSG => self.unimplemented("sys_recvmsg(a0, a1.into(), a2),", Ok(0)),
|
||||
Sys::SHUTDOWN => self.sys_shutdown(a0, a1),
|
||||
Sys::BIND => self.sys_bind(a0, a1.into(), a2),
|
||||
Sys::BIND => self.sys_bind(a0, self.into_in_userptr(a1).unwrap(), a2),
|
||||
Sys::LISTEN => self.sys_listen(a0, a1),
|
||||
Sys::GETSOCKNAME => self.sys_getsockname(a0, a1.into(), a2.into()),
|
||||
Sys::GETSOCKNAME => self.sys_getsockname(
|
||||
a0,
|
||||
self.into_out_userptr(a1).unwrap(),
|
||||
self.into_inout_userptr(a2).unwrap(),
|
||||
),
|
||||
Sys::GETPEERNAME => {
|
||||
self.unimplemented("sys_getpeername(a0, a1.into(), a2.into()),", Ok(0))
|
||||
}
|
||||
Sys::SETSOCKOPT => self.sys_setsockopt(a0, a1, a2, a3.into(), a4),
|
||||
Sys::SETSOCKOPT => {
|
||||
self.sys_setsockopt(a0, a1, a2, self.into_in_userptr(a3).unwrap(), a4)
|
||||
}
|
||||
Sys::GETSOCKOPT => {
|
||||
self.unimplemented("sys_getsockopt(a0, a1, a2, a3.into(), a4.into()),", Ok(0))
|
||||
}
|
||||
|
||||
// process
|
||||
Sys::CLONE => self.sys_clone(a0, a1, a2.into(), a3.into(), a4),
|
||||
Sys::EXECVE => self.sys_execve(a0.into(), a1.into(), a2.into()),
|
||||
Sys::CLONE => {
|
||||
// warn!("a2={} a3={}", a2, a3);
|
||||
// self.sys_clone(
|
||||
// a0,
|
||||
// a1,
|
||||
// self.into_out_userptr(a2).unwrap(),
|
||||
// self.into_out_userptr(a3).unwrap(),
|
||||
// a4,
|
||||
// )
|
||||
self.sys_clone(a0, a1, a2.into(), a3.into(), a4)
|
||||
}
|
||||
Sys::EXECVE => self.sys_execve(
|
||||
self.into_in_userptr(a0).unwrap(),
|
||||
self.into_in_userptr(a1).unwrap(),
|
||||
self.into_in_userptr(a2).unwrap(),
|
||||
),
|
||||
Sys::EXIT => self.sys_exit(a0 as _),
|
||||
Sys::EXIT_GROUP => self.sys_exit_group(a0 as _),
|
||||
Sys::WAIT4 => self.sys_wait4(a0 as _, a1.into(), a2 as _).await,
|
||||
Sys::SET_TID_ADDRESS => self.sys_set_tid_address(a0.into()),
|
||||
Sys::FUTEX => self.sys_futex(a0, a1 as _, a2 as _, a3.into()).await,
|
||||
Sys::WAIT4 => {
|
||||
self.sys_wait4(a0 as _, self.into_out_userptr(a1).unwrap(), a2 as _)
|
||||
.await
|
||||
}
|
||||
Sys::SET_TID_ADDRESS => self.sys_set_tid_address(self.into_out_userptr(a0).unwrap()),
|
||||
Sys::FUTEX => {
|
||||
// ignore timeout argument when op is wake
|
||||
self.sys_futex(a0, a1 as _, a2 as _, a3).await
|
||||
}
|
||||
Sys::TKILL => self.unimplemented("tkill", Ok(0)),
|
||||
|
||||
// time
|
||||
Sys::NANOSLEEP => self.sys_nanosleep(a0.into()).await,
|
||||
Sys::NANOSLEEP => self.sys_nanosleep(self.into_in_userptr(a0).unwrap()).await,
|
||||
Sys::SETITIMER => self.unimplemented("setitimer", Ok(0)),
|
||||
Sys::GETTIMEOFDAY => self.sys_gettimeofday(a0.into(), a1.into()),
|
||||
Sys::CLOCK_GETTIME => self.sys_clock_gettime(a0, a1.into()),
|
||||
Sys::GETTIMEOFDAY => self.sys_gettimeofday(
|
||||
self.into_out_userptr(a0).unwrap(),
|
||||
self.into_in_userptr(a1).unwrap(),
|
||||
),
|
||||
Sys::CLOCK_GETTIME => self.sys_clock_gettime(a0, self.into_out_userptr(a1).unwrap()),
|
||||
|
||||
// sem
|
||||
#[cfg(not(target_arch = "mips"))]
|
||||
Sys::SEMGET => self.sys_semget(a0, a1, a2),
|
||||
#[cfg(not(target_arch = "mips"))]
|
||||
Sys::SEMOP => self.sys_semop(a0, a1.into(), a2).await,
|
||||
Sys::SEMOP => {
|
||||
self.sys_semop(a0, self.into_in_userptr(a1).unwrap(), a2)
|
||||
.await
|
||||
}
|
||||
#[cfg(not(target_arch = "mips"))]
|
||||
Sys::SEMCTL => self.sys_semctl(a0, a1, a2, a3),
|
||||
|
||||
|
|
@ -218,13 +426,13 @@ impl Syscall<'_> {
|
|||
// system
|
||||
Sys::GETPID => self.sys_getpid(),
|
||||
Sys::GETTID => self.sys_gettid(),
|
||||
Sys::UNAME => self.sys_uname(a0.into()),
|
||||
Sys::UNAME => self.sys_uname(self.into_out_userptr(a0).unwrap()),
|
||||
Sys::UMASK => self.unimplemented("umask", Ok(0o777)),
|
||||
// Sys::GETRLIMIT => self.sys_getrlimit(),
|
||||
// Sys::SETRLIMIT => self.sys_setrlimit(),
|
||||
Sys::GETRUSAGE => self.sys_getrusage(a0, a1.into()),
|
||||
Sys::SYSINFO => self.sys_sysinfo(a0.into()),
|
||||
Sys::TIMES => self.sys_times(a0.into()),
|
||||
Sys::GETRUSAGE => self.sys_getrusage(a0, self.into_out_userptr(a1).unwrap()),
|
||||
Sys::SYSINFO => self.sys_sysinfo(self.into_out_userptr(a0).unwrap()),
|
||||
Sys::TIMES => self.sys_times(self.into_out_userptr(a0).unwrap()),
|
||||
Sys::GETUID => self.unimplemented("getuid", Ok(0)),
|
||||
Sys::GETGID => self.unimplemented("getgid", Ok(0)),
|
||||
Sys::SETUID => self.unimplemented("setuid", Ok(0)),
|
||||
|
|
@ -239,9 +447,16 @@ impl Syscall<'_> {
|
|||
// Sys::SETPRIORITY => self.sys_set_priority(a0),
|
||||
Sys::PRCTL => self.unimplemented("prctl", Ok(0)),
|
||||
Sys::MEMBARRIER => self.unimplemented("membarrier", Ok(0)),
|
||||
Sys::PRLIMIT64 => self.sys_prlimit64(a0, a1, a2.into(), a3.into()),
|
||||
Sys::PRLIMIT64 => self.sys_prlimit64(
|
||||
a0,
|
||||
a1,
|
||||
self.into_in_userptr(a2).unwrap(),
|
||||
self.into_out_userptr(a3).unwrap(),
|
||||
),
|
||||
// Sys::REBOOT => self.sys_reboot(a0 as u32, a1 as u32, a2 as u32, a3.into()),
|
||||
Sys::GETRANDOM => self.sys_getrandom(a0.into(), a1 as usize, a2 as u32),
|
||||
Sys::GETRANDOM => {
|
||||
self.sys_getrandom(self.into_out_userptr(a0).unwrap(), a1 as usize, a2 as u32)
|
||||
}
|
||||
Sys::RT_SIGQUEUEINFO => self.unimplemented("rt_sigqueueinfo", Ok(0)),
|
||||
|
||||
// kernel module
|
||||
|
|
@ -268,30 +483,55 @@ impl Syscall<'_> {
|
|||
async fn x86_64_syscall(&mut self, sys_type: Sys, args: [usize; 6]) -> SysResult {
|
||||
let [a0, a1, a2, a3, a4, _a5] = args;
|
||||
match sys_type {
|
||||
Sys::OPEN => self.sys_open(a0.into(), a1, a2),
|
||||
Sys::STAT => self.sys_stat(a0.into(), a1.into()),
|
||||
Sys::LSTAT => self.sys_lstat(a0.into(), a1.into()),
|
||||
Sys::POLL => self.sys_poll(a0.into(), a1, a2 as _).await,
|
||||
Sys::ACCESS => self.sys_access(a0.into(), a1),
|
||||
Sys::PIPE => self.sys_pipe(a0.into()),
|
||||
Sys::SELECT => {
|
||||
self.sys_select(a0, a1.into(), a2.into(), a3.into(), a4.into())
|
||||
Sys::OPEN => self.sys_open(self.into_in_userptr(a0).unwrap(), a1, a2),
|
||||
Sys::STAT => self.sys_stat(
|
||||
self.into_in_userptr(a0).unwrap(),
|
||||
self.into_out_userptr(a1).unwrap(),
|
||||
),
|
||||
Sys::LSTAT => self.sys_lstat(
|
||||
self.into_in_userptr(a0).unwrap(),
|
||||
self.into_out_userptr(a1).unwrap(),
|
||||
),
|
||||
Sys::POLL => {
|
||||
self.sys_poll(self.into_inout_userptr(a0).unwrap(), a1, a2 as _)
|
||||
.await
|
||||
}
|
||||
Sys::ACCESS => self.sys_access(self.into_in_userptr(a0).unwrap(), a1),
|
||||
Sys::PIPE => self.sys_pipe(self.into_out_userptr(a0).unwrap()),
|
||||
Sys::SELECT => {
|
||||
self.sys_select(
|
||||
a0,
|
||||
self.into_inout_userptr(a1).unwrap(),
|
||||
self.into_inout_userptr(a2).unwrap(),
|
||||
self.into_inout_userptr(a3).unwrap(),
|
||||
self.into_in_userptr(a4).unwrap(),
|
||||
)
|
||||
.await
|
||||
}
|
||||
Sys::DUP2 => self.sys_dup2(a0.into(), a1.into()),
|
||||
// Sys::ALARM => self.unimplemented("alarm", Ok(0)),
|
||||
Sys::FORK => self.sys_fork(),
|
||||
Sys::VFORK => self.sys_vfork().await,
|
||||
Sys::RENAME => self.sys_rename(a0.into(), a1.into()),
|
||||
Sys::MKDIR => self.sys_mkdir(a0.into(), a1),
|
||||
Sys::RMDIR => self.sys_rmdir(a0.into()),
|
||||
Sys::LINK => self.sys_link(a0.into(), a1.into()),
|
||||
Sys::UNLINK => self.sys_unlink(a0.into()),
|
||||
Sys::READLINK => self.sys_readlink(a0.into(), a1.into(), a2),
|
||||
Sys::RENAME => self.sys_rename(
|
||||
self.into_in_userptr(a0).unwrap(),
|
||||
self.into_in_userptr(a1).unwrap(),
|
||||
),
|
||||
Sys::MKDIR => self.sys_mkdir(self.into_in_userptr(a0).unwrap(), a1),
|
||||
Sys::RMDIR => self.sys_rmdir(self.into_in_userptr(a0).unwrap()),
|
||||
Sys::LINK => self.sys_link(
|
||||
self.into_in_userptr(a0).unwrap(),
|
||||
self.into_in_userptr(a1).unwrap(),
|
||||
),
|
||||
Sys::UNLINK => self.sys_unlink(self.into_in_userptr(a0).unwrap()),
|
||||
Sys::READLINK => self.sys_readlink(
|
||||
self.into_in_userptr(a0).unwrap(),
|
||||
self.into_out_userptr(a1).unwrap(),
|
||||
a2,
|
||||
),
|
||||
Sys::CHMOD => self.unimplemented("chmod", Ok(0)),
|
||||
Sys::CHOWN => self.unimplemented("chown", Ok(0)),
|
||||
Sys::ARCH_PRCTL => self.sys_arch_prctl(a0 as _, a1),
|
||||
Sys::TIME => self.sys_time(a0.into()),
|
||||
Sys::TIME => self.sys_time(self.into_out_userptr(a0).unwrap()),
|
||||
// Sys::EPOLL_CREATE => self.sys_epoll_create(a0),
|
||||
// Sys::EPOLL_WAIT => self.sys_epoll_wait(a0, a1.into(), a2, a3),
|
||||
_ => self.unknown_syscall(sys_type),
|
||||
|
|
|
|||
|
|
@ -74,13 +74,23 @@ impl Syscall<'_> {
|
|||
uaddr: usize,
|
||||
op: u32,
|
||||
val: i32,
|
||||
timeout: UserInPtr<TimeSpec>,
|
||||
timeout_addr: usize,
|
||||
) -> SysResult {
|
||||
let op = FutexFlags::from_bits_truncate(op);
|
||||
let timeout = if op.contains(FutexFlags::WAKE) {
|
||||
self.into_inout_userptr::<TimeSpec>(0).unwrap()
|
||||
} else {
|
||||
let timeout_result = self.into_inout_userptr::<TimeSpec>(timeout_addr);
|
||||
match timeout_result {
|
||||
Ok(t) => t,
|
||||
Err(_e) => return Err(LxError::EACCES),
|
||||
}
|
||||
};
|
||||
info!(
|
||||
"futex: uaddr: {:#x}, op: {:?}, val: {}, timeout_ptr: {:?}",
|
||||
uaddr, op, val, timeout
|
||||
);
|
||||
|
||||
if op.contains(FutexFlags::PRIVATE) {
|
||||
warn!("process-shared futex is unimplemented");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
nightly-2022-02-22
|
||||
nightly-2022-01-20
|
||||
|
|
|
|||
|
|
@ -1,77 +0,0 @@
|
|||
import pexpect
|
||||
import sys
|
||||
import re
|
||||
import os
|
||||
|
||||
TIMEOUT = 20
|
||||
ZCORE_PATH = '../zCore'
|
||||
BASE = 'zircon/'
|
||||
OUTPUT_FILE = BASE + 'test-output-baremetal.txt'
|
||||
RESULT_FILE = BASE + 'test-result-baremetal.txt'
|
||||
CHECK_FILE = BASE + 'test-check-passed.txt'
|
||||
DBG_FILE = BASE + 'dbg-b.txt'
|
||||
TEST_CASE_FILE = BASE + 'testcases-all.txt'
|
||||
|
||||
|
||||
class Tee:
|
||||
def __init__(self, name, mode):
|
||||
self.file = open(name, mode)
|
||||
self.stdout = sys.stdout
|
||||
sys.stdout = self
|
||||
|
||||
def __del__(self):
|
||||
sys.stdout = self.stdout
|
||||
self.file.close()
|
||||
|
||||
def write(self, data):
|
||||
self.file.write(data)
|
||||
self.stdout.write(data)
|
||||
|
||||
def flush(self):
|
||||
self.file.flush()
|
||||
|
||||
if os.path.exists(OUTPUT_FILE): os.remove(OUTPUT_FILE)
|
||||
if os.path.exists(RESULT_FILE): os.remove(RESULT_FILE)
|
||||
if os.path.exists(DBG_FILE): os.remove(DBG_FILE)
|
||||
|
||||
with open(TEST_CASE_FILE, "r") as tcf:
|
||||
lines = tcf.readlines()
|
||||
for line in lines:
|
||||
with open(DBG_FILE, "a") as dbg: print(line, file=dbg)
|
||||
|
||||
child = pexpect.spawn("make -C %s test MODE=release TEST_FILTER='%s'" % (ZCORE_PATH, line.replace('\n','')),
|
||||
timeout=TIMEOUT, encoding='utf-8')
|
||||
child.logfile = Tee(OUTPUT_FILE, 'a')
|
||||
|
||||
index = child.expect(['finished!', 'panicked', pexpect.EOF, pexpect.TIMEOUT])
|
||||
result = ['FINISHED', 'PANICKED', 'EOF', 'TIMEOUT'][index]
|
||||
print(result)
|
||||
|
||||
passed = []
|
||||
failed = []
|
||||
passed_case = set()
|
||||
|
||||
# see https://stackoverflow.com/questions/59379174/ignore-ansi-colors-in-pexpect-response
|
||||
ansi_escape = re.compile(r"\x1B[@-_][0-?]*[ -/]*[@-~]")
|
||||
|
||||
with open(OUTPUT_FILE, "r") as opf:
|
||||
for line in opf:
|
||||
line=ansi_escape.sub('',line)
|
||||
with open(RESULT_FILE, "a") as rstf:
|
||||
if line.startswith('[ OK ]'):
|
||||
print(line, file=rstf)
|
||||
elif line.startswith('[ FAILED ]') and line.endswith(')\n'):
|
||||
print(line, file=rstf)
|
||||
|
||||
|
||||
# with open(CHECK_FILE, 'r') as f:
|
||||
# check_case = set([case.strip() for case in f.readlines()])
|
||||
|
||||
# not_passed = check_case - passed_case
|
||||
# if not_passed:
|
||||
# print('=== Failed cases ===')
|
||||
# for case in not_passed:
|
||||
# print(case)
|
||||
# exit(1)
|
||||
# else:
|
||||
# print('All checked case passed!')
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
import os
|
||||
import glob
|
||||
import subprocess
|
||||
import re
|
||||
import sys
|
||||
# ===============Must Config========================
|
||||
|
||||
TIMEOUT = 10 # seconds
|
||||
ZCORE_PATH = '../zCore'
|
||||
BASE = 'linux/'
|
||||
CHECK_FILE = BASE + 'baremetal-test-allow-rv64.txt'
|
||||
FAIL_FILE = BASE + 'baremetal-test-fail-rv64.txt'
|
||||
SCRIPT_FILE = 'script.sh'
|
||||
RESULT_FILE ='../stdout-rv64'
|
||||
script=r'''
|
||||
#!/bin/bash
|
||||
|
||||
cd .. && make baremetal-test-rv64 ROOTPROC='''
|
||||
|
||||
# ==============================================
|
||||
passed = set()
|
||||
failed = set()
|
||||
timeout = set()
|
||||
|
||||
FAILED = [
|
||||
"failed",
|
||||
"panicked at",
|
||||
"ERROR",
|
||||
]
|
||||
|
||||
with open(CHECK_FILE, 'r') as f:
|
||||
allow_files = set([case.strip() for case in f.readlines()])
|
||||
|
||||
for file in allow_files:
|
||||
script_file = script+file
|
||||
with open(SCRIPT_FILE, 'w') as f:
|
||||
print(script_file, file=f)
|
||||
try:
|
||||
subprocess.run(['sh',SCRIPT_FILE], timeout=TIMEOUT, check=True)
|
||||
|
||||
with open(RESULT_FILE, 'r') as f:
|
||||
output=f.read();
|
||||
|
||||
break_out_flag = False
|
||||
for pattern in FAILED:
|
||||
if re.search(pattern, output):
|
||||
failed.add(file)
|
||||
break_out_flag = True
|
||||
else:
|
||||
continue
|
||||
if not break_out_flag:
|
||||
passed.add(file)
|
||||
except subprocess.CalledProcessError:
|
||||
failed.add(file)
|
||||
except subprocess.TimeoutExpired:
|
||||
timeout.add(file)
|
||||
|
||||
|
||||
|
||||
print("PASSED %d", len(passed))
|
||||
print("FAILED %d", len(failed))
|
||||
print(failed)
|
||||
print("TIMEOUT %d", len(timeout))
|
||||
|
||||
with open(FAIL_FILE,'w') as f:
|
||||
for bad_file in failed:
|
||||
print(bad_file, file=f)
|
||||
|
||||
if len(failed) > 0 :
|
||||
sys.exit(-1)
|
||||
else:
|
||||
sys.exit(0)
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
import os
|
||||
import glob
|
||||
import subprocess
|
||||
import re
|
||||
import sys
|
||||
# ===============Must Config========================
|
||||
|
||||
TIMEOUT = 10 # seconds
|
||||
ZCORE_PATH = '../zCore'
|
||||
BASE = 'linux/'
|
||||
CHECK_FILE = BASE + 'baremetal-test-allow.txt'
|
||||
FAIL_FILE = BASE + 'baremetal-test-fail.txt'
|
||||
RBOOT_FILE = 'rboot.conf'
|
||||
RESULT_FILE ='../stdout-zcore'
|
||||
rboot= r'''
|
||||
# The config file for rboot.
|
||||
# Place me at \EFI\Boot\rboot.conf
|
||||
|
||||
# The address at which the kernel stack is placed.
|
||||
# kernel_stack_address=0xFFFFFF8000000000
|
||||
|
||||
# The size of the kernel stack, given in number of 4KiB pages. Defaults to 512.
|
||||
# kernel_stack_size=128
|
||||
|
||||
# The virtual address offset from which physical memory is mapped, as described in
|
||||
# https://os.phil-opp.com/paging-implementation/#map-the-complete-physical-memory
|
||||
physical_memory_offset=0xFFFF800000000000
|
||||
|
||||
# The path of kernel ELF
|
||||
kernel_path=\EFI\zCore\zcore.elf
|
||||
|
||||
# The resolution of graphic output
|
||||
resolution=1024x768
|
||||
|
||||
initramfs=\EFI\zCore\fuchsia.zbi
|
||||
# LOG=debug/info/error/warn/trace
|
||||
# add ROOTPROC info ? split CMD and ARG : ROOTPROC=/libc-test/src/functional/argv.exe? OR ROOTPROC=/bin/busybox?sh
|
||||
cmdline=LOG=error:TERM=xterm-256color:console.shell=true:virtcon.disable=true:ROOTPROC='''
|
||||
|
||||
# ==============================================
|
||||
passed = set()
|
||||
failed = set()
|
||||
timeout = set()
|
||||
|
||||
FAILED = [
|
||||
"failed",
|
||||
"ERROR",
|
||||
]
|
||||
|
||||
with open(CHECK_FILE, 'r') as f:
|
||||
allow_files = set([case.strip() for case in f.readlines()])
|
||||
|
||||
for file in allow_files:
|
||||
print(file)
|
||||
rboot_file=rboot+file+'?'
|
||||
print(rboot)
|
||||
with open(RBOOT_FILE,'w') as f:
|
||||
print(rboot_file, file=f)
|
||||
try:
|
||||
subprocess.run(r'cp rboot.conf ../zCore && cd ../ && make baremetal-test | tee stdout-zcore && sed -i '
|
||||
r'"/BdsDxe/d" stdout-zcore',
|
||||
shell=True, timeout=TIMEOUT, check=True)
|
||||
|
||||
with open(RESULT_FILE, 'r') as f:
|
||||
output=f.read();
|
||||
|
||||
break_out_flag = False
|
||||
for pattern in FAILED:
|
||||
if re.search(pattern, output):
|
||||
failed.add(file)
|
||||
break_out_flag = True
|
||||
else:
|
||||
continue
|
||||
if not break_out_flag:
|
||||
passed.add(file)
|
||||
except subprocess.CalledProcessError:
|
||||
failed.add(file)
|
||||
except subprocess.TimeoutExpired:
|
||||
timeout.add(file)
|
||||
|
||||
|
||||
|
||||
print("PASSED %d", len(passed))
|
||||
print("FAILED %d", len(failed))
|
||||
print(failed)
|
||||
print("TIMEOUT %d", len(timeout))
|
||||
|
||||
with open(FAIL_FILE,'w') as f:
|
||||
for bad_file in failed:
|
||||
print(bad_file, file=f)
|
||||
|
||||
if len(failed) > 0 :
|
||||
sys.exit(-1)
|
||||
else:
|
||||
sys.exit(0)
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
import os
|
||||
import glob
|
||||
import subprocess
|
||||
import re
|
||||
import sys
|
||||
|
||||
# ===============Must Config========================
|
||||
|
||||
TIMEOUT = 10 # seconds
|
||||
ZCORE_PATH = '../zCore'
|
||||
BASE = 'linux/'
|
||||
CHECK_FILE = BASE + 'baremetal-test-ones-rv64.txt'
|
||||
SCRIPT_FILE = 'script.sh'
|
||||
RESULT_FILE ='../stdout-rv64'
|
||||
script=r'''
|
||||
#!/bin/bash
|
||||
|
||||
cd .. && make baremetal-test-rv64 ROOTPROC='''
|
||||
|
||||
# ==============================================
|
||||
passed = set()
|
||||
failed = set()
|
||||
timeout = set()
|
||||
|
||||
FAILED = [
|
||||
"failed",
|
||||
"panicked at",
|
||||
"ERROR",
|
||||
]
|
||||
|
||||
with open(CHECK_FILE, 'r') as f:
|
||||
allow_files = set([case.strip() for case in f.readlines()])
|
||||
|
||||
for file in allow_files:
|
||||
script_file = script+file
|
||||
with open(SCRIPT_FILE, 'w') as f:
|
||||
print(script_file, file=f)
|
||||
try:
|
||||
subprocess.run(['sh',SCRIPT_FILE], timeout=TIMEOUT, check=True)
|
||||
|
||||
with open(RESULT_FILE, 'r') as f:
|
||||
output = f.read()
|
||||
|
||||
break_out_flag = False
|
||||
for pattern in FAILED:
|
||||
if re.search(pattern, output):
|
||||
failed.add(file)
|
||||
break_out_flag = True
|
||||
break
|
||||
|
||||
if not break_out_flag:
|
||||
passed.add(file)
|
||||
except subprocess.CalledProcessError:
|
||||
failed.add(file)
|
||||
except subprocess.TimeoutExpired:
|
||||
timeout.add(file)
|
||||
|
||||
print("=======================================")
|
||||
print("PASSED num: ", len(passed))
|
||||
print("=======================================")
|
||||
print("FAILED num: ", len(failed))
|
||||
print(failed)
|
||||
print("=======================================")
|
||||
print("TIMEOUT num: ", len(timeout))
|
||||
print(timeout)
|
||||
print("=======================================")
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
import os
|
||||
import glob
|
||||
import subprocess
|
||||
import re
|
||||
import sys
|
||||
|
||||
# ===============Must Config========================
|
||||
|
||||
TIMEOUT = 10 # seconds
|
||||
ZCORE_PATH = '../zCore'
|
||||
BASE = 'linux/'
|
||||
CHECK_FILE = BASE + 'baremetal-test-ones.txt'
|
||||
# FAIL_FILE = BASE + 'baremetal-test-fail.txt'
|
||||
RBOOT_FILE = 'rboot.conf'
|
||||
RESULT_FILE = '../stdout-zcore'
|
||||
rboot = r'''
|
||||
# The config file for rboot.
|
||||
# Place me at \EFI\Boot\rboot.conf
|
||||
|
||||
# The address at which the kernel stack is placed.
|
||||
# kernel_stack_address=0xFFFFFF8000000000
|
||||
|
||||
# The size of the kernel stack, given in number of 4KiB pages. Defaults to 512.
|
||||
# kernel_stack_size=128
|
||||
|
||||
# The virtual address offset from which physical memory is mapped, as described in
|
||||
# https://os.phil-opp.com/paging-implementation/#map-the-complete-physical-memory
|
||||
physical_memory_offset=0xFFFF800000000000
|
||||
|
||||
# The path of kernel ELF
|
||||
kernel_path=\EFI\zCore\zcore.elf
|
||||
|
||||
# The resolution of graphic output
|
||||
resolution=1024x768
|
||||
|
||||
initramfs=\EFI\zCore\fuchsia.zbi
|
||||
# LOG=debug/info/error/warn/trace
|
||||
# add ROOTPROC info ? split CMD and ARG : ROOTPROC=/libc-test/src/functional/argv.exe? OR ROOTPROC=/bin/busybox?sh
|
||||
cmdline=LOG=warn:TERM=xterm-256color:console.shell=true:virtcon.disable=true:ROOTPROC='''
|
||||
|
||||
# ==============================================
|
||||
passed = set()
|
||||
failed = set()
|
||||
timeout = set()
|
||||
|
||||
FAILED = [
|
||||
"failed",
|
||||
"ERROR",
|
||||
]
|
||||
|
||||
with open(CHECK_FILE, 'r') as f:
|
||||
allow_files = set([case.strip() for case in f.readlines()])
|
||||
|
||||
# with open(FAIL_FILE, 'r') as f:
|
||||
# failed_files = set([case.strip() for case in f.readlines()])
|
||||
|
||||
for file in allow_files:
|
||||
# if not (file in failed_files):
|
||||
# print(file)
|
||||
rboot_file = rboot + file + '?'
|
||||
# print(rboot)
|
||||
with open(RBOOT_FILE, 'w') as f:
|
||||
print(rboot_file, file=f)
|
||||
|
||||
try:
|
||||
subprocess.run(r'cp rboot.conf ../zCore && cd ../ && make baremetal-test | tee stdout-zcore '
|
||||
r'&& '
|
||||
r'sed -i '
|
||||
r'"/BdsDxe/d" stdout-zcore',
|
||||
shell=True, timeout=TIMEOUT, check=True)
|
||||
|
||||
with open(RESULT_FILE, 'r') as f:
|
||||
output = f.read()
|
||||
|
||||
break_out_flag = False
|
||||
for pattern in FAILED:
|
||||
if re.search(pattern, output):
|
||||
failed.add(file)
|
||||
break_out_flag = True
|
||||
break
|
||||
|
||||
if not break_out_flag:
|
||||
passed.add(file)
|
||||
except subprocess.CalledProcessError:
|
||||
failed.add(file)
|
||||
except subprocess.TimeoutExpired:
|
||||
timeout.add(file)
|
||||
|
||||
print("=======================================")
|
||||
print("PASSED num: ", len(passed))
|
||||
print("=======================================")
|
||||
print("FAILED num: ", len(failed))
|
||||
print(failed)
|
||||
print("=======================================")
|
||||
print("TIMEOUT num: ", len(timeout))
|
||||
print(timeout)
|
||||
print("=======================================")
|
||||
# print("Total tested num: ", len(allow_files)-len(failed_files))
|
||||
# print("=======================================")
|
||||
# with open(FAIL_FILE,'w') as f:
|
||||
# for bad_file in failed:
|
||||
# print(bad_file, file=f)
|
||||
|
||||
if len(failed) > 3:
|
||||
sys.exit(-1)
|
||||
else:
|
||||
sys.exit(0)
|
||||
|
|
@ -1,105 +0,0 @@
|
|||
import os
|
||||
import glob
|
||||
import subprocess
|
||||
import re
|
||||
import sys
|
||||
# ===============Must Config========================
|
||||
|
||||
TIMEOUT = 10 # seconds
|
||||
ZCORE_PATH = '../zCore'
|
||||
BASE = 'linux/'
|
||||
CHECK_FILE = BASE + 'baremetal-test-allow.txt'
|
||||
FAIL_FILE = BASE + 'baremetal-test-fail.txt'
|
||||
RBOOT_FILE = 'rboot.conf'
|
||||
RESULT_FILE ='../stdout-zcore'
|
||||
rboot= r'''
|
||||
# The config file for rboot.
|
||||
# Place me at \EFI\Boot\rboot.conf
|
||||
|
||||
# The address at which the kernel stack is placed.
|
||||
# kernel_stack_address=0xFFFFFF8000000000
|
||||
|
||||
# The size of the kernel stack, given in number of 4KiB pages. Defaults to 512.
|
||||
# kernel_stack_size=128
|
||||
|
||||
# The virtual address offset from which physical memory is mapped, as described in
|
||||
# https://os.phil-opp.com/paging-implementation/#map-the-complete-physical-memory
|
||||
physical_memory_offset=0xFFFF800000000000
|
||||
|
||||
# The path of kernel ELF
|
||||
kernel_path=\EFI\zCore\zcore.elf
|
||||
|
||||
# The resolution of graphic output
|
||||
resolution=1024x768
|
||||
|
||||
initramfs=\EFI\zCore\x86_64.img
|
||||
# LOG=debug/info/error/warn/trace
|
||||
# add ROOTPROC info ? split CMD and ARG : ROOTPROC=/libc-test/src/functional/argv.exe? OR ROOTPROC=/bin/busybox?sh
|
||||
cmdline=LOG=error:TERM=xterm-256color:console.shell=true:virtcon.disable=true:ROOTPROC='''
|
||||
|
||||
# ==============================================
|
||||
passed = set()
|
||||
failed = set()
|
||||
timeout = set()
|
||||
|
||||
FAILED = [
|
||||
"failed",
|
||||
"ERROR",
|
||||
]
|
||||
|
||||
with open(CHECK_FILE, 'r') as f:
|
||||
allow_files = set([case.strip() for case in f.readlines()])
|
||||
|
||||
with open(FAIL_FILE,'r') as f:
|
||||
failed_files = set([case.strip() for case in f.readlines()])
|
||||
|
||||
for file in allow_files:
|
||||
if not (file in failed_files):
|
||||
# print(file)
|
||||
rboot_file=rboot+file+'?'
|
||||
# print(rboot)
|
||||
with open(RBOOT_FILE,'w') as f:
|
||||
print(rboot_file, file=f)
|
||||
try:
|
||||
subprocess.run(r'cp rboot.conf ../zCore && cd ../ && make baremetal-test | tee stdout-zcore '
|
||||
r'&& '
|
||||
r'sed -i '
|
||||
r'"/BdsDxe/d" stdout-zcore',
|
||||
shell=True, timeout=TIMEOUT, check=True)
|
||||
|
||||
with open(RESULT_FILE, 'r') as f:
|
||||
output=f.read()
|
||||
|
||||
break_out_flag = False
|
||||
for pattern in FAILED:
|
||||
if re.search(pattern, output):
|
||||
failed.add(file)
|
||||
break_out_flag = True
|
||||
break
|
||||
|
||||
if not break_out_flag:
|
||||
passed.add(file)
|
||||
except subprocess.CalledProcessError:
|
||||
failed.add(file)
|
||||
except subprocess.TimeoutExpired:
|
||||
timeout.add(file)
|
||||
|
||||
print("=======================================")
|
||||
print("PASSED num: ", len(passed))
|
||||
print("=======================================")
|
||||
print("FAILED num: ", len(failed))
|
||||
print(failed)
|
||||
print("=======================================")
|
||||
print("TIMEOUT num: ", len(timeout))
|
||||
print(timeout)
|
||||
print("=======================================")
|
||||
print("Total tested num: ", len(allow_files)-len(failed_files))
|
||||
print("=======================================")
|
||||
# with open(FAIL_FILE,'w') as f:
|
||||
# for bad_file in failed:
|
||||
# print(bad_file, file=f)
|
||||
|
||||
if len(failed) > 3 :
|
||||
sys.exit(-1)
|
||||
else:
|
||||
sys.exit(0)
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
import os
|
||||
import glob
|
||||
import subprocess
|
||||
import re
|
||||
import sys
|
||||
# ===============Must Config========================
|
||||
|
||||
TIMEOUT = 10 # seconds
|
||||
ZCORE_PATH = '../zCore'
|
||||
BASE = 'linux/'
|
||||
CHECK_FILE = BASE + 'baremetal-test-allow-rv64.txt'
|
||||
FAIL_FILE = BASE + 'baremetal-test-fail-rv64.txt'
|
||||
SCRIPT_FILE = 'script.sh'
|
||||
RESULT_FILE ='../stdout-rv64'
|
||||
script=r'''
|
||||
#!/bin/bash
|
||||
|
||||
cd .. && make baremetal-test-rv64 ROOTPROC='''
|
||||
|
||||
# ==============================================
|
||||
passed = set()
|
||||
failed = set()
|
||||
timeout = set()
|
||||
|
||||
FAILED = [
|
||||
"panicked at",
|
||||
"ERROR",
|
||||
]
|
||||
|
||||
with open(CHECK_FILE, 'r') as f:
|
||||
allow_files = set([case.strip() for case in f.readlines()])
|
||||
|
||||
with open(FAIL_FILE,'r') as f:
|
||||
failed_files = set([case.strip() for case in f.readlines()])
|
||||
|
||||
for file in allow_files:
|
||||
if not (file in failed_files):
|
||||
script_file = script+file
|
||||
with open(SCRIPT_FILE, 'w') as f:
|
||||
print(script_file, file=f)
|
||||
try:
|
||||
subprocess.run(['sh',SCRIPT_FILE], timeout=TIMEOUT, check=True)
|
||||
|
||||
with open(RESULT_FILE, 'r') as f:
|
||||
output=f.read()
|
||||
|
||||
break_out_flag = False
|
||||
for pattern in FAILED:
|
||||
if re.search(pattern, output):
|
||||
failed.add(file)
|
||||
break_out_flag = True
|
||||
break
|
||||
|
||||
if not break_out_flag:
|
||||
passed.add(file)
|
||||
except subprocess.CalledProcessError:
|
||||
failed.add(file)
|
||||
except subprocess.TimeoutExpired:
|
||||
timeout.add(file)
|
||||
|
||||
print("=======================================")
|
||||
print("PASSED num: ", len(passed))
|
||||
print("=======================================")
|
||||
print("FAILED num: ", len(failed))
|
||||
print(failed)
|
||||
print("=======================================")
|
||||
print("TIMEOUT num: ", len(timeout))
|
||||
print(timeout)
|
||||
print("=======================================")
|
||||
print("Total tested num: ", len(allow_files)-len(failed_files))
|
||||
print("=======================================")
|
||||
# with open(FAIL_FILE,'w') as f:
|
||||
# for bad_file in failed:
|
||||
# print(bad_file, file=f)
|
||||
|
||||
if len(failed) > 3 :
|
||||
sys.exit(-1)
|
||||
else:
|
||||
sys.exit(0)
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
import pexpect
|
||||
import sys
|
||||
import re
|
||||
|
||||
TIMEOUT = 300
|
||||
ZCORE_PATH = '../zCore'
|
||||
BASE = 'zircon/'
|
||||
OUTPUT_FILE = BASE + 'test-output.txt'
|
||||
RESULT_FILE = BASE + 'test-result.txt'
|
||||
CHECK_FILE = BASE + 'test-check-passed.txt'
|
||||
TEST_CASE_FILE = BASE + 'testcases.txt'
|
||||
|
||||
CMDLINE = "LOG=warn:userboot=test/core-standalone-test:userboot.shutdown:core-tests=%s"
|
||||
|
||||
class Tee:
|
||||
def __init__(self, name, mode):
|
||||
self.file = open(name, mode)
|
||||
self.stdout = sys.stdout
|
||||
sys.stdout = self
|
||||
|
||||
def __del__(self):
|
||||
sys.stdout = self.stdout
|
||||
self.file.close()
|
||||
|
||||
def write(self, data):
|
||||
self.file.write(data)
|
||||
self.stdout.write(data)
|
||||
|
||||
def flush(self):
|
||||
self.file.flush()
|
||||
|
||||
|
||||
with open(TEST_CASE_FILE, "r") as f:
|
||||
lines = f.readlines()
|
||||
positive = [line for line in lines if not line.startswith('-')]
|
||||
negative = [line[1:] for line in lines if line.startswith('-')]
|
||||
test_filter = (','.join(positive) + ((',-' + ','.join(negative) if len(negative) > 0 else "") )).replace('\n', '')
|
||||
|
||||
child = pexpect.spawn("make -C %s run MODE=release ZBI=core-tests CMDLINE='%s'" % (ZCORE_PATH, CMDLINE % test_filter),
|
||||
timeout=TIMEOUT, encoding='utf-8')
|
||||
child.logfile = Tee(OUTPUT_FILE, 'w')
|
||||
|
||||
index = child.expect(['finished!', 'panicked', pexpect.EOF, pexpect.TIMEOUT])
|
||||
result = ['FINISHED', 'PANICKED', 'EOF', 'TIMEOUT'][index]
|
||||
print(result)
|
||||
|
||||
passed = []
|
||||
failed = []
|
||||
passed_case = set()
|
||||
|
||||
# see https://stackoverflow.com/questions/59379174/ignore-ansi-colors-in-pexpect-response
|
||||
ansi_escape = re.compile(r"\x1B[@-_][0-?]*[ -/]*[@-~]")
|
||||
|
||||
with open(OUTPUT_FILE, "r") as f:
|
||||
for line in f.readlines():
|
||||
line=ansi_escape.sub('',line)
|
||||
if line.startswith('[ OK ]'):
|
||||
passed += line
|
||||
passed_case.add(line[13:].split(' ')[0])
|
||||
elif line.startswith('[ FAILED ]') and line.endswith(')\n'):
|
||||
failed += line
|
||||
|
||||
with open(RESULT_FILE, "w") as f:
|
||||
f.writelines(passed)
|
||||
f.writelines(failed)
|
||||
|
||||
with open(CHECK_FILE, 'r') as f:
|
||||
check_case = set([case.strip() for case in f.readlines()])
|
||||
|
||||
not_passed = check_case - passed_case
|
||||
if not_passed:
|
||||
print('=== Failed cases ===')
|
||||
for case in not_passed:
|
||||
print(case)
|
||||
exit(1)
|
||||
else:
|
||||
print('All checked case passed!')
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
import os
|
||||
import time
|
||||
import glob
|
||||
import subprocess
|
||||
from termcolor import colored
|
||||
|
||||
# ===============Must Config========================
|
||||
|
||||
TIMEOUT = 10 # seconds
|
||||
ZCORE_PATH = '../zCore'
|
||||
BASE = 'linux/'
|
||||
OUTPUT_FILE = BASE + 'test-output.txt'
|
||||
RESULT_FILE = BASE + 'test-result.txt'
|
||||
CHECK_FILE = BASE + 'libos-test-allow-failed.txt'
|
||||
|
||||
# ==============================================
|
||||
|
||||
passed = set()
|
||||
failed = set()
|
||||
timeout = set()
|
||||
|
||||
|
||||
def print_cases(cases, file=None):
|
||||
for case in sorted(cases):
|
||||
print(case, file=file)
|
||||
|
||||
|
||||
subprocess.run("cargo build -p zcore --release --features 'linux libos'",
|
||||
shell=True, check=True)
|
||||
|
||||
for path in sorted(glob.glob("../rootfs/libc-test/src/*/*.exe")):
|
||||
path = path[len('../rootfs'):]
|
||||
# ignore static linked tests
|
||||
if path.endswith('-static.exe'):
|
||||
continue
|
||||
try:
|
||||
time_start = time.time()
|
||||
subprocess.run("cd .. && ./target/release/zcore " + path,
|
||||
shell=True, timeout=TIMEOUT, check=True)
|
||||
time_end = time.time()
|
||||
passed.add(path)
|
||||
print(colored('PASSED in %.3fs: %s' % (time_end - time_start, path), 'green'))
|
||||
except subprocess.CalledProcessError:
|
||||
failed.add(path)
|
||||
print(colored('FAILED: %s' % path, 'red'))
|
||||
except subprocess.TimeoutExpired:
|
||||
timeout.add(path)
|
||||
print(colored('TIMEOUT: %s' % path, 'yellow'))
|
||||
|
||||
with open(RESULT_FILE, "w") as f:
|
||||
print('PASSED:', file=f)
|
||||
print_cases(passed, file=f)
|
||||
print('FAILED:', file=f)
|
||||
print_cases(failed, file=f)
|
||||
print('TIMEOUT:', file=f)
|
||||
print_cases(timeout, file=f)
|
||||
|
||||
with open(CHECK_FILE, 'r') as f:
|
||||
allow_failed = set([case.strip() for case in f.readlines()])
|
||||
|
||||
more_passed = passed & allow_failed
|
||||
if more_passed:
|
||||
print(colored('=== Passed more cases ===', 'green'))
|
||||
print_cases(more_passed)
|
||||
|
||||
check_failed = (failed | timeout) - allow_failed
|
||||
if check_failed:
|
||||
print(colored('=== Failed cases ===', 'red'))
|
||||
print_cases(failed - allow_failed)
|
||||
print(colored('=== Timeout cases ===', 'yellow'))
|
||||
print_cases(timeout - allow_failed)
|
||||
exit(1)
|
||||
else:
|
||||
print(colored('All checked case passed!', 'green'))
|
||||
|
||||
os.system('killall zcore')
|
||||
|
|
@ -1,477 +0,0 @@
|
|||
/libc-test/src/functional/search_tsearch.exe
|
||||
/libc-test/src/functional/fcntl-static.exe
|
||||
/libc-test/src/functional/memstream-static.exe
|
||||
/libc-test/src/functional/string_strcspn.exe
|
||||
/libc-test/src/functional/crypt.exe
|
||||
/libc-test/src/functional/tgmath.exe
|
||||
/libc-test/src/functional/pthread_cancel-static.exe
|
||||
/libc-test/src/functional/argv.exe
|
||||
/libc-test/src/functional/strtod-static.exe
|
||||
/libc-test/src/functional/time.exe
|
||||
/libc-test/src/functional/search_insque.exe
|
||||
/libc-test/src/functional/pthread_tsd-static.exe
|
||||
/libc-test/src/functional/fnmatch.exe
|
||||
/libc-test/src/functional/udiv-static.exe
|
||||
/libc-test/src/functional/sem_open.exe
|
||||
/libc-test/src/functional/random.exe
|
||||
/libc-test/src/functional/strtold.exe
|
||||
/libc-test/src/functional/env-static.exe
|
||||
/libc-test/src/functional/string_memmem.exe
|
||||
/libc-test/src/functional/search_tsearch-static.exe
|
||||
/libc-test/src/functional/basename-static.exe
|
||||
/libc-test/src/functional/sem_init.exe
|
||||
/libc-test/src/functional/spawn-static.exe
|
||||
/libc-test/src/functional/strtof-static.exe
|
||||
/libc-test/src/functional/search_lsearch-static.exe
|
||||
/libc-test/src/functional/string_memcpy-static.exe
|
||||
/libc-test/src/functional/tgmath-static.exe
|
||||
/libc-test/src/functional/strtol-static.exe
|
||||
/libc-test/src/functional/dirname.exe
|
||||
/libc-test/src/functional/tls_align_dlopen.exe
|
||||
/libc-test/src/functional/setjmp-static.exe
|
||||
/libc-test/src/functional/wcsstr.exe
|
||||
/libc-test/src/functional/wcstol.exe
|
||||
/libc-test/src/functional/mbc.exe
|
||||
/libc-test/src/functional/iconv_open-static.exe
|
||||
/libc-test/src/functional/inet_pton.exe
|
||||
/libc-test/src/functional/pthread_cancel-points-static.exe
|
||||
/libc-test/src/functional/strptime-static.exe
|
||||
/libc-test/src/functional/search_hsearch-static.exe
|
||||
/libc-test/src/functional/string_strchr-static.exe
|
||||
/libc-test/src/functional/fdopen-static.exe
|
||||
/libc-test/src/functional/ipc_shm.exe
|
||||
/libc-test/src/functional/search_lsearch.exe
|
||||
/libc-test/src/functional/tls_align-static.exe
|
||||
/libc-test/src/functional/basename.exe
|
||||
/libc-test/src/functional/mbc-static.exe
|
||||
/libc-test/src/functional/pthread_robust-static.exe
|
||||
/libc-test/src/functional/wcstol-static.exe
|
||||
/libc-test/src/functional/fwscanf-static.exe
|
||||
/libc-test/src/functional/ipc_msg.exe
|
||||
/libc-test/src/functional/clock_gettime-static.exe
|
||||
/libc-test/src/functional/stat-static.exe
|
||||
/libc-test/src/functional/wcsstr-static.exe
|
||||
/libc-test/src/functional/spawn.exe
|
||||
/libc-test/src/functional/search_hsearch.exe
|
||||
/libc-test/src/functional/string_memset.exe
|
||||
/libc-test/src/functional/string_strcspn-static.exe
|
||||
/libc-test/src/functional/string_strstr.exe
|
||||
/libc-test/src/functional/pthread_robust.exe
|
||||
/libc-test/src/functional/sscanf_long-static.exe
|
||||
/libc-test/src/functional/pthread_cancel-points.exe
|
||||
/libc-test/src/functional/fdopen.exe
|
||||
/libc-test/src/functional/pthread_cond.exe
|
||||
/libc-test/src/functional/tls_align.exe
|
||||
/libc-test/src/functional/tls_local_exec.exe
|
||||
/libc-test/src/functional/memstream.exe
|
||||
/libc-test/src/functional/sem_init-static.exe
|
||||
/libc-test/src/functional/popen-static.exe
|
||||
/libc-test/src/functional/random-static.exe
|
||||
/libc-test/src/functional/strtod_long.exe
|
||||
/libc-test/src/functional/fscanf-static.exe
|
||||
/libc-test/src/functional/swprintf.exe
|
||||
/libc-test/src/functional/strtod.exe
|
||||
/libc-test/src/functional/qsort.exe
|
||||
/libc-test/src/functional/inet_pton-static.exe
|
||||
/libc-test/src/functional/env.exe
|
||||
/libc-test/src/functional/sscanf-static.exe
|
||||
/libc-test/src/functional/tls_local_exec-static.exe
|
||||
/libc-test/src/functional/strftime-static.exe
|
||||
/libc-test/src/functional/dirname-static.exe
|
||||
/libc-test/src/functional/pthread_cancel.exe
|
||||
/libc-test/src/functional/fscanf.exe
|
||||
/libc-test/src/functional/clock_gettime.exe
|
||||
/libc-test/src/functional/crypt-static.exe
|
||||
/libc-test/src/functional/socket.exe
|
||||
/libc-test/src/functional/strptime.exe
|
||||
/libc-test/src/functional/fcntl.exe
|
||||
/libc-test/src/functional/string_memcpy.exe
|
||||
/libc-test/src/functional/strtod_simple-static.exe
|
||||
/libc-test/src/functional/pthread_mutex_pi.exe
|
||||
/libc-test/src/functional/argv-static.exe
|
||||
/libc-test/src/functional/search_insque-static.exe
|
||||
/libc-test/src/functional/ungetc-static.exe
|
||||
/libc-test/src/functional/string_memset-static.exe
|
||||
/libc-test/src/functional/sem_open-static.exe
|
||||
/libc-test/src/functional/clocale_mbfuncs-static.exe
|
||||
/libc-test/src/functional/sscanf_long.exe
|
||||
/libc-test/src/functional/string-static.exe
|
||||
/libc-test/src/functional/ipc_sem-static.exe
|
||||
/libc-test/src/functional/strtof.exe
|
||||
/libc-test/src/functional/string_strstr-static.exe
|
||||
/libc-test/src/functional/strtol.exe
|
||||
/libc-test/src/functional/snprintf.exe
|
||||
/libc-test/src/functional/tls_init.exe
|
||||
/libc-test/src/functional/clocale_mbfuncs.exe
|
||||
/libc-test/src/functional/iconv_open.exe
|
||||
/libc-test/src/functional/snprintf-static.exe
|
||||
/libc-test/src/functional/tls_init_dlopen.exe
|
||||
/libc-test/src/functional/ipc_msg-static.exe
|
||||
/libc-test/src/functional/time-static.exe
|
||||
/libc-test/src/functional/tls_init-static.exe
|
||||
/libc-test/src/functional/ungetc.exe
|
||||
/libc-test/src/functional/strtod_simple.exe
|
||||
/libc-test/src/functional/string_strchr.exe
|
||||
/libc-test/src/functional/dlopen.exe
|
||||
/libc-test/src/functional/vfork-static.exe
|
||||
/libc-test/src/functional/ipc_shm-static.exe
|
||||
/libc-test/src/functional/vfork.exe
|
||||
/libc-test/src/functional/pthread_mutex.exe
|
||||
/libc-test/src/functional/stat.exe
|
||||
/libc-test/src/functional/strtold-static.exe
|
||||
/libc-test/src/functional/ipc_sem.exe
|
||||
/libc-test/src/functional/swprintf-static.exe
|
||||
/libc-test/src/functional/popen.exe
|
||||
/libc-test/src/functional/strtod_long-static.exe
|
||||
/libc-test/src/functional/sscanf.exe
|
||||
/libc-test/src/functional/setjmp.exe
|
||||
/libc-test/src/functional/udiv.exe
|
||||
/libc-test/src/functional/fwscanf.exe
|
||||
/libc-test/src/functional/utime.exe
|
||||
/libc-test/src/functional/utime-static.exe
|
||||
/libc-test/src/functional/fnmatch-static.exe
|
||||
/libc-test/src/functional/pthread_tsd.exe
|
||||
/libc-test/src/functional/pthread_mutex_pi-static.exe
|
||||
/libc-test/src/functional/pthread_mutex-static.exe
|
||||
/libc-test/src/functional/qsort-static.exe
|
||||
/libc-test/src/functional/string.exe
|
||||
/libc-test/src/functional/pthread_cond-static.exe
|
||||
/libc-test/src/functional/strftime.exe
|
||||
/libc-test/src/functional/string_memmem-static.exe
|
||||
/libc-test/src/functional/socket-static.exe
|
||||
/libc-test/src/common/runtest.exe
|
||||
/libc-test/src/regression/pthread_atfork-errno-clobber-static.exe
|
||||
/libc-test/src/regression/setenv-oom.exe
|
||||
/libc-test/src/regression/fpclassify-invalid-ld80.exe
|
||||
/libc-test/src/regression/execle-env-static.exe
|
||||
/libc-test/src/regression/setvbuf-unget-static.exe
|
||||
/libc-test/src/regression/flockfile-list-static.exe
|
||||
/libc-test/src/regression/sigaltstack.exe
|
||||
/libc-test/src/regression/scanf-bytes-consumed.exe
|
||||
/libc-test/src/regression/putenv-doublefree-static.exe
|
||||
/libc-test/src/regression/getpwnam_r-errno.exe
|
||||
/libc-test/src/regression/ftello-unflushed-append-static.exe
|
||||
/libc-test/src/regression/setvbuf-unget.exe
|
||||
/libc-test/src/regression/inet_ntop-v4mapped-static.exe
|
||||
/libc-test/src/regression/pthread_cancel-sem_wait.exe
|
||||
/libc-test/src/regression/inet_pton-empty-last-field-static.exe
|
||||
/libc-test/src/regression/sscanf-eof-static.exe
|
||||
/libc-test/src/regression/ftello-unflushed-append.exe
|
||||
/libc-test/src/regression/strverscmp-static.exe
|
||||
/libc-test/src/regression/printf-fmt-n-static.exe
|
||||
/libc-test/src/regression/inet_pton-empty-last-field.exe
|
||||
/libc-test/src/regression/putenv-doublefree.exe
|
||||
/libc-test/src/regression/mkstemp-failure.exe
|
||||
/libc-test/src/regression/regex-backref-0-static.exe
|
||||
/libc-test/src/regression/malloc-oom-static.exe
|
||||
/libc-test/src/regression/sigprocmask-internal.exe
|
||||
/libc-test/src/regression/pthread-robust-detach-static.exe
|
||||
/libc-test/src/regression/memmem-oob-static.exe
|
||||
/libc-test/src/regression/memmem-oob-read.exe
|
||||
/libc-test/src/regression/lseek-large.exe
|
||||
/libc-test/src/regression/printf-fmt-g-zeros.exe
|
||||
/libc-test/src/regression/malloc-0.exe
|
||||
/libc-test/src/regression/wcsstr-false-negative.exe
|
||||
/libc-test/src/regression/pthread_cond-smasher-static.exe
|
||||
/libc-test/src/regression/wcsstr-false-negative-static.exe
|
||||
/libc-test/src/regression/tls_get_new-dtv.exe
|
||||
/libc-test/src/regression/printf-fmt-g-round-static.exe
|
||||
/libc-test/src/regression/uselocale-0.exe
|
||||
/libc-test/src/regression/flockfile-list.exe
|
||||
/libc-test/src/regression/getpwnam_r-errno-static.exe
|
||||
/libc-test/src/regression/dn_expand-ptr-0-static.exe
|
||||
/libc-test/src/regression/malloc-brk-fail-static.exe
|
||||
/libc-test/src/regression/statvfs.exe
|
||||
/libc-test/src/regression/scanf-match-literal-eof-static.exe
|
||||
/libc-test/src/regression/daemon-failure.exe
|
||||
/libc-test/src/regression/fflush-exit.exe
|
||||
/libc-test/src/regression/mkstemp-failure-static.exe
|
||||
/libc-test/src/regression/pthread-robust-detach.exe
|
||||
/libc-test/src/regression/syscall-sign-extend-static.exe
|
||||
/libc-test/src/regression/rewind-clear-error.exe
|
||||
/libc-test/src/regression/setenv-oom-static.exe
|
||||
/libc-test/src/regression/regex-escaped-high-byte.exe
|
||||
/libc-test/src/regression/dn_expand-empty-static.exe
|
||||
/libc-test/src/regression/regex-negated-range-static.exe
|
||||
/libc-test/src/regression/regex-ere-backref-static.exe
|
||||
/libc-test/src/regression/sem_close-unmap-static.exe
|
||||
/libc-test/src/regression/mkdtemp-failure.exe
|
||||
/libc-test/src/regression/printf-fmt-n.exe
|
||||
/libc-test/src/regression/rlimit-open-files.exe
|
||||
/libc-test/src/regression/iswspace-null.exe
|
||||
/libc-test/src/regression/pthread_exit-cancel.exe
|
||||
/libc-test/src/regression/sigreturn.exe
|
||||
/libc-test/src/regression/wcsncpy-read-overflow-static.exe
|
||||
/libc-test/src/regression/daemon-failure-static.exe
|
||||
/libc-test/src/regression/memmem-oob.exe
|
||||
/libc-test/src/regression/pthread_condattr_setclock.exe
|
||||
/libc-test/src/regression/lrand48-signextend.exe
|
||||
/libc-test/src/regression/rlimit-open-files-static.exe
|
||||
/libc-test/src/regression/sigaltstack-static.exe
|
||||
/libc-test/src/regression/regex-bracket-icase.exe
|
||||
/libc-test/src/regression/pthread_cond-smasher.exe
|
||||
/libc-test/src/regression/scanf-bytes-consumed-static.exe
|
||||
/libc-test/src/regression/scanf-match-literal-eof.exe
|
||||
/libc-test/src/regression/malloc-0-static.exe
|
||||
/libc-test/src/regression/lrand48-signextend-static.exe
|
||||
/libc-test/src/regression/raise-race-static.exe
|
||||
/libc-test/src/regression/printf-1e9-oob-static.exe
|
||||
/libc-test/src/regression/fgetwc-buffering.exe
|
||||
/libc-test/src/regression/pthread_cancel-sem_wait-static.exe
|
||||
/libc-test/src/regression/sem_close-unmap.exe
|
||||
/libc-test/src/regression/printf-fmt-g-round.exe
|
||||
/libc-test/src/regression/pthread_once-deadlock-static.exe
|
||||
/libc-test/src/regression/pthread_atfork-errno-clobber.exe
|
||||
/libc-test/src/regression/pthread_exit-cancel-static.exe
|
||||
/libc-test/src/regression/pthread_once-deadlock.exe
|
||||
/libc-test/src/regression/pthread_exit-dtor.exe
|
||||
/libc-test/src/regression/iconv-roundtrips-static.exe
|
||||
/libc-test/src/regression/syscall-sign-extend.exe
|
||||
/libc-test/src/regression/uselocale-0-static.exe
|
||||
/libc-test/src/regression/regex-bracket-icase-static.exe
|
||||
/libc-test/src/regression/strverscmp.exe
|
||||
/libc-test/src/regression/lseek-large-static.exe
|
||||
/libc-test/src/regression/scanf-nullbyte-char.exe
|
||||
/libc-test/src/regression/malloc-brk-fail.exe
|
||||
/libc-test/src/regression/pthread_create-oom-static.exe
|
||||
/libc-test/src/regression/regexec-nosub.exe
|
||||
/libc-test/src/regression/rewind-clear-error-static.exe
|
||||
/libc-test/src/regression/regex-negated-range.exe
|
||||
/libc-test/src/regression/inet_ntop-v4mapped.exe
|
||||
/libc-test/src/regression/regex-ere-backref.exe
|
||||
/libc-test/src/regression/memmem-oob-read-static.exe
|
||||
/libc-test/src/regression/sscanf-eof.exe
|
||||
/libc-test/src/regression/iswspace-null-static.exe
|
||||
/libc-test/src/regression/printf-1e9-oob.exe
|
||||
/libc-test/src/regression/mbsrtowcs-overflow-static.exe
|
||||
/libc-test/src/regression/dn_expand-ptr-0.exe
|
||||
/libc-test/src/regression/regexec-nosub-static.exe
|
||||
/libc-test/src/regression/iconv-roundtrips.exe
|
||||
/libc-test/src/regression/pthread_rwlock-ebusy.exe
|
||||
/libc-test/src/regression/getpwnam_r-crash.exe
|
||||
/libc-test/src/regression/printf-fmt-g-zeros-static.exe
|
||||
/libc-test/src/regression/sigprocmask-internal-static.exe
|
||||
/libc-test/src/regression/pthread_cond_wait-cancel_ignored.exe
|
||||
/libc-test/src/regression/sigreturn-static.exe
|
||||
/libc-test/src/regression/scanf-nullbyte-char-static.exe
|
||||
/libc-test/src/regression/execle-env.exe
|
||||
/libc-test/src/regression/raise-race.exe
|
||||
/libc-test/src/regression/getpwnam_r-crash-static.exe
|
||||
/libc-test/src/regression/statvfs-static.exe
|
||||
/libc-test/src/regression/pthread_rwlock-ebusy-static.exe
|
||||
/libc-test/src/regression/pthread_create-oom.exe
|
||||
/libc-test/src/regression/fpclassify-invalid-ld80-static.exe
|
||||
/libc-test/src/regression/fgets-eof.exe
|
||||
/libc-test/src/regression/regex-escaped-high-byte-static.exe
|
||||
/libc-test/src/regression/fgetwc-buffering-static.exe
|
||||
/libc-test/src/regression/mkdtemp-failure-static.exe
|
||||
/libc-test/src/regression/fgets-eof-static.exe
|
||||
/libc-test/src/regression/malloc-oom.exe
|
||||
/libc-test/src/regression/wcsncpy-read-overflow.exe
|
||||
/libc-test/src/regression/mbsrtowcs-overflow.exe
|
||||
/libc-test/src/regression/pthread_exit-dtor-static.exe
|
||||
/libc-test/src/regression/regex-backref-0.exe
|
||||
/libc-test/src/regression/pthread_cond_wait-cancel_ignored-static.exe
|
||||
/libc-test/src/regression/pthread_condattr_setclock-static.exe
|
||||
/libc-test/src/regression/fflush-exit-static.exe
|
||||
/libc-test/src/regression/dn_expand-empty.exe
|
||||
/libc-test/src/musl/pleval-static.exe
|
||||
/libc-test/src/math/nextafter.exe
|
||||
/libc-test/src/math/acosf.exe
|
||||
/libc-test/src/math/scalbln.exe
|
||||
/libc-test/src/math/ceil.exe
|
||||
/libc-test/src/math/erff.exe
|
||||
/libc-test/src/math/exp2l.exe
|
||||
/libc-test/src/math/sinh.exe
|
||||
/libc-test/src/math/remainderl.exe
|
||||
/libc-test/src/math/ceill.exe
|
||||
/libc-test/src/math/roundl.exe
|
||||
/libc-test/src/math/lgammal.exe
|
||||
/libc-test/src/math/lrintl.exe
|
||||
/libc-test/src/math/exp10.exe
|
||||
/libc-test/src/math/asinh.exe
|
||||
/libc-test/src/math/fabs.exe
|
||||
/libc-test/src/math/ldexpl.exe
|
||||
/libc-test/src/math/fminf.exe
|
||||
/libc-test/src/math/atan.exe
|
||||
/libc-test/src/math/y0.exe
|
||||
/libc-test/src/math/pow10l.exe
|
||||
/libc-test/src/math/exp10f.exe
|
||||
/libc-test/src/math/tan.exe
|
||||
/libc-test/src/math/modf.exe
|
||||
/libc-test/src/math/log10f.exe
|
||||
/libc-test/src/math/log2.exe
|
||||
/libc-test/src/math/fmaxl.exe
|
||||
/libc-test/src/math/j0.exe
|
||||
/libc-test/src/math/nexttowardl.exe
|
||||
/libc-test/src/math/rintf.exe
|
||||
/libc-test/src/math/scalblnf.exe
|
||||
/libc-test/src/math/lrint.exe
|
||||
/libc-test/src/math/sinl.exe
|
||||
/libc-test/src/math/log1pl.exe
|
||||
/libc-test/src/math/rint.exe
|
||||
/libc-test/src/math/logf.exe
|
||||
/libc-test/src/math/j1.exe
|
||||
/libc-test/src/math/nearbyintl.exe
|
||||
/libc-test/src/math/sinhl.exe
|
||||
/libc-test/src/math/logbf.exe
|
||||
/libc-test/src/math/jnf.exe
|
||||
/libc-test/src/math/ldexpf.exe
|
||||
/libc-test/src/math/truncf.exe
|
||||
/libc-test/src/math/llrintf.exe
|
||||
/libc-test/src/math/pow10f.exe
|
||||
/libc-test/src/math/cosf.exe
|
||||
/libc-test/src/math/log2f.exe
|
||||
/libc-test/src/math/yn.exe
|
||||
/libc-test/src/math/log1pf.exe
|
||||
/libc-test/src/math/logl.exe
|
||||
/libc-test/src/math/nearbyintf.exe
|
||||
/libc-test/src/math/logbl.exe
|
||||
/libc-test/src/math/lgammaf_r.exe
|
||||
/libc-test/src/math/nearbyint.exe
|
||||
/libc-test/src/math/hypotl.exe
|
||||
/libc-test/src/math/asinhl.exe
|
||||
/libc-test/src/math/logb.exe
|
||||
/libc-test/src/math/scalblnl.exe
|
||||
/libc-test/src/math/ilogbf.exe
|
||||
/libc-test/src/math/atan2f.exe
|
||||
/libc-test/src/math/fpclassify.exe
|
||||
/libc-test/src/math/asinl.exe
|
||||
/libc-test/src/math/log1p.exe
|
||||
/libc-test/src/math/sqrtf.exe
|
||||
/libc-test/src/math/sqrt.exe
|
||||
/libc-test/src/math/llrint.exe
|
||||
/libc-test/src/math/modfl.exe
|
||||
/libc-test/src/math/fdiml.exe
|
||||
/libc-test/src/math/fenv.exe
|
||||
/libc-test/src/math/sincosf.exe
|
||||
/libc-test/src/math/log10.exe
|
||||
/libc-test/src/math/ceilf.exe
|
||||
/libc-test/src/math/erf.exe
|
||||
/libc-test/src/math/erfl.exe
|
||||
/libc-test/src/math/lroundf.exe
|
||||
/libc-test/src/math/j1f.exe
|
||||
/libc-test/src/math/sqrtl.exe
|
||||
/libc-test/src/math/fabsf.exe
|
||||
/libc-test/src/math/lgamma.exe
|
||||
/libc-test/src/math/llroundl.exe
|
||||
/libc-test/src/math/floorl.exe
|
||||
/libc-test/src/math/fminl.exe
|
||||
/libc-test/src/math/llround.exe
|
||||
/libc-test/src/math/tgammal.exe
|
||||
/libc-test/src/math/drem.exe
|
||||
/libc-test/src/math/tgamma.exe
|
||||
/libc-test/src/math/exp2.exe
|
||||
/libc-test/src/math/atanhl.exe
|
||||
/libc-test/src/math/exp10l.exe
|
||||
/libc-test/src/math/remquol.exe
|
||||
/libc-test/src/math/y1.exe
|
||||
/libc-test/src/math/scalbn.exe
|
||||
/libc-test/src/math/rintl.exe
|
||||
/libc-test/src/math/remquof.exe
|
||||
/libc-test/src/math/fmod.exe
|
||||
/libc-test/src/math/y1f.exe
|
||||
/libc-test/src/math/expf.exe
|
||||
/libc-test/src/math/exp.exe
|
||||
/libc-test/src/math/cbrt.exe
|
||||
/libc-test/src/math/ldexp.exe
|
||||
/libc-test/src/math/nextafterf.exe
|
||||
/libc-test/src/math/fmodl.exe
|
||||
/libc-test/src/math/sincosl.exe
|
||||
/libc-test/src/math/tgammaf.exe
|
||||
/libc-test/src/math/ilogbl.exe
|
||||
/libc-test/src/math/log.exe
|
||||
/libc-test/src/math/tanf.exe
|
||||
/libc-test/src/math/asinhf.exe
|
||||
/libc-test/src/math/powf.exe
|
||||
/libc-test/src/math/nexttowardf.exe
|
||||
/libc-test/src/math/atanl.exe
|
||||
/libc-test/src/math/coshl.exe
|
||||
/libc-test/src/math/llroundf.exe
|
||||
/libc-test/src/math/nexttoward.exe
|
||||
/libc-test/src/math/acosh.exe
|
||||
/libc-test/src/math/sin.exe
|
||||
/libc-test/src/math/expl.exe
|
||||
/libc-test/src/math/tanl.exe
|
||||
/libc-test/src/math/lrintf.exe
|
||||
/libc-test/src/math/fmin.exe
|
||||
/libc-test/src/math/fmaf.exe
|
||||
/libc-test/src/math/asin.exe
|
||||
/libc-test/src/math/lgammal_r.exe
|
||||
/libc-test/src/math/pow10.exe
|
||||
/libc-test/src/math/floor.exe
|
||||
/libc-test/src/math/j0f.exe
|
||||
/libc-test/src/math/nextafterl.exe
|
||||
/libc-test/src/math/fmax.exe
|
||||
/libc-test/src/math/asinf.exe
|
||||
/libc-test/src/math/cosh.exe
|
||||
/libc-test/src/math/frexp.exe
|
||||
/libc-test/src/math/acos.exe
|
||||
/libc-test/src/math/trunc.exe
|
||||
/libc-test/src/math/fdimf.exe
|
||||
/libc-test/src/math/acoshf.exe
|
||||
/libc-test/src/math/atanh.exe
|
||||
/libc-test/src/math/exp2f.exe
|
||||
/libc-test/src/math/jn.exe
|
||||
/libc-test/src/math/ynf.exe
|
||||
/libc-test/src/math/floorf.exe
|
||||
/libc-test/src/math/scalb.exe
|
||||
/libc-test/src/math/atanhf.exe
|
||||
/libc-test/src/math/fma.exe
|
||||
/libc-test/src/math/scalbf.exe
|
||||
/libc-test/src/math/expm1.exe
|
||||
/libc-test/src/math/copysign.exe
|
||||
/libc-test/src/math/lroundl.exe
|
||||
/libc-test/src/math/cos.exe
|
||||
/libc-test/src/math/erfcf.exe
|
||||
/libc-test/src/math/truncl.exe
|
||||
/libc-test/src/math/scalbnl.exe
|
||||
/libc-test/src/math/acoshl.exe
|
||||
/libc-test/src/math/cosl.exe
|
||||
/libc-test/src/math/sinhf.exe
|
||||
/libc-test/src/math/sinf.exe
|
||||
/libc-test/src/math/fmal.exe
|
||||
/libc-test/src/math/remainder.exe
|
||||
/libc-test/src/math/lgammaf.exe
|
||||
/libc-test/src/math/fabsl.exe
|
||||
/libc-test/src/math/cbrtf.exe
|
||||
/libc-test/src/math/log10l.exe
|
||||
/libc-test/src/math/pow.exe
|
||||
/libc-test/src/math/atan2l.exe
|
||||
/libc-test/src/math/powl.exe
|
||||
/libc-test/src/math/log2l.exe
|
||||
/libc-test/src/math/remquo.exe
|
||||
/libc-test/src/math/sincos.exe
|
||||
/libc-test/src/math/frexpf.exe
|
||||
/libc-test/src/math/fmaxf.exe
|
||||
/libc-test/src/math/expm1f.exe
|
||||
/libc-test/src/math/llrintl.exe
|
||||
/libc-test/src/math/tanhf.exe
|
||||
/libc-test/src/math/hypotf.exe
|
||||
/libc-test/src/math/acosl.exe
|
||||
/libc-test/src/math/remainderf.exe
|
||||
/libc-test/src/math/lgamma_r.exe
|
||||
/libc-test/src/math/fmodf.exe
|
||||
/libc-test/src/math/tanh.exe
|
||||
/libc-test/src/math/hypot.exe
|
||||
/libc-test/src/math/round.exe
|
||||
/libc-test/src/math/frexpl.exe
|
||||
/libc-test/src/math/expm1l.exe
|
||||
/libc-test/src/math/tanhl.exe
|
||||
/libc-test/src/math/copysignf.exe
|
||||
/libc-test/src/math/atan2.exe
|
||||
/libc-test/src/math/coshf.exe
|
||||
/libc-test/src/math/scalbnf.exe
|
||||
/libc-test/src/math/ilogb.exe
|
||||
/libc-test/src/math/y0f.exe
|
||||
/libc-test/src/math/cbrtl.exe
|
||||
/libc-test/src/math/erfcl.exe
|
||||
/libc-test/src/math/copysignl.exe
|
||||
/libc-test/src/math/lround.exe
|
||||
/libc-test/src/math/isless.exe
|
||||
/libc-test/src/math/erfc.exe
|
||||
/libc-test/src/math/atanf.exe
|
||||
/libc-test/src/math/dremf.exe
|
||||
/libc-test/src/math/roundf.exe
|
||||
/libc-test/src/math/fdim.exe
|
||||
/libc-test/src/math/modff.exe
|
||||
|
|
@ -1,525 +0,0 @@
|
|||
/oscomp/brk?
|
||||
/oscomp/chdir?
|
||||
/oscomp/clone?
|
||||
/oscomp/close?
|
||||
/oscomp/dup?
|
||||
/oscomp/dup2?
|
||||
/oscomp/execve?
|
||||
/oscomp/exit?
|
||||
/oscomp/fork?
|
||||
/oscomp/fstat?
|
||||
/oscomp/getcwd?
|
||||
/oscomp/getdents?
|
||||
/oscomp/getpid?
|
||||
/oscomp/getppid?
|
||||
/oscomp/gettimeofday?
|
||||
/oscomp/mkdir_?
|
||||
/oscomp/mmap?
|
||||
/oscomp/mount?
|
||||
/oscomp/munmap?
|
||||
/oscomp/open?
|
||||
/oscomp/openat?
|
||||
/oscomp/pipe?
|
||||
/oscomp/read?
|
||||
/oscomp/sleep?
|
||||
/oscomp/test_echo?
|
||||
/oscomp/times?
|
||||
/oscomp/umount?
|
||||
/oscomp/uname?
|
||||
/oscomp/unlink?
|
||||
/oscomp/wait?
|
||||
/oscomp/waitpid?
|
||||
/oscomp/write?
|
||||
/oscomp/yield?
|
||||
/bin/busybox?cal
|
||||
/bin/busybox?clear
|
||||
/bin/busybox?date
|
||||
/bin/busybox?df
|
||||
/bin/busybox?dmesg
|
||||
/bin/busybox?du
|
||||
/bin/busybox?false
|
||||
/bin/busybox?true
|
||||
/bin/busybox?uname
|
||||
/bin/busybox?uptime
|
||||
/bin/busybox?ps
|
||||
/bin/busybox?pwd
|
||||
/bin/busybox?free
|
||||
/bin/busybox?hwclock
|
||||
/bin/busybox?ls
|
||||
/libc-test/functional/search_tsearch.exe?
|
||||
/libc-test/functional/fcntl-static.exe?
|
||||
/libc-test/functional/memstream-static.exe?
|
||||
/libc-test/functional/string_strcspn.exe?
|
||||
/libc-test/functional/crypt.exe?
|
||||
/libc-test/functional/tgmath.exe?
|
||||
/libc-test/functional/pthread_cancel-static.exe?
|
||||
/libc-test/functional/argv.exe?
|
||||
/libc-test/functional/strtod-static.exe?
|
||||
/libc-test/functional/time.exe?
|
||||
/libc-test/functional/search_insque.exe?
|
||||
/libc-test/functional/pthread_tsd-static.exe?
|
||||
/libc-test/functional/fnmatch.exe?
|
||||
/libc-test/functional/udiv-static.exe?
|
||||
/libc-test/functional/sem_open.exe?
|
||||
/libc-test/functional/random.exe?
|
||||
/libc-test/functional/strtold.exe?
|
||||
/libc-test/functional/env-static.exe?
|
||||
/libc-test/functional/string_memmem.exe?
|
||||
/libc-test/functional/search_tsearch-static.exe?
|
||||
/libc-test/functional/basename-static.exe?
|
||||
/libc-test/functional/sem_init.exe?
|
||||
/libc-test/functional/spawn-static.exe?
|
||||
/libc-test/functional/strtof-static.exe?
|
||||
/libc-test/functional/search_lsearch-static.exe?
|
||||
/libc-test/functional/string_memcpy-static.exe?
|
||||
/libc-test/functional/tgmath-static.exe?
|
||||
/libc-test/functional/strtol-static.exe?
|
||||
/libc-test/functional/dirname.exe?
|
||||
/libc-test/functional/tls_align_dlopen.exe?
|
||||
/libc-test/functional/setjmp-static.exe?
|
||||
/libc-test/functional/wcsstr.exe?
|
||||
/libc-test/functional/wcstol.exe?
|
||||
/libc-test/functional/mbc.exe?
|
||||
/libc-test/functional/iconv_open-static.exe?
|
||||
/libc-test/functional/inet_pton.exe?
|
||||
/libc-test/functional/pthread_cancel-points-static.exe?
|
||||
/libc-test/functional/strptime-static.exe?
|
||||
/libc-test/functional/search_hsearch-static.exe?
|
||||
/libc-test/functional/string_strchr-static.exe?
|
||||
/libc-test/functional/fdopen-static.exe?
|
||||
/libc-test/functional/ipc_shm.exe?
|
||||
/libc-test/functional/search_lsearch.exe?
|
||||
/libc-test/functional/tls_align-static.exe?
|
||||
/libc-test/functional/basename.exe?
|
||||
/libc-test/functional/mbc-static.exe?
|
||||
/libc-test/functional/pthread_robust-static.exe?
|
||||
/libc-test/functional/wcstol-static.exe?
|
||||
/libc-test/functional/fwscanf-static.exe?
|
||||
/libc-test/functional/ipc_msg.exe?
|
||||
/libc-test/functional/clock_gettime-static.exe?
|
||||
/libc-test/functional/stat-static.exe?
|
||||
/libc-test/functional/wcsstr-static.exe?
|
||||
/libc-test/functional/spawn.exe?
|
||||
/libc-test/functional/search_hsearch.exe?
|
||||
/libc-test/functional/string_memset.exe?
|
||||
/libc-test/functional/string_strcspn-static.exe?
|
||||
/libc-test/functional/string_strstr.exe?
|
||||
/libc-test/functional/pthread_robust.exe?
|
||||
/libc-test/functional/sscanf_long-static.exe?
|
||||
/libc-test/functional/pthread_cancel-points.exe?
|
||||
/libc-test/functional/fdopen.exe?
|
||||
/libc-test/functional/pthread_cond.exe?
|
||||
/libc-test/functional/tls_align.exe?
|
||||
/libc-test/functional/tls_local_exec.exe?
|
||||
/libc-test/functional/memstream.exe?
|
||||
/libc-test/functional/sem_init-static.exe?
|
||||
/libc-test/functional/popen-static.exe?
|
||||
/libc-test/functional/random-static.exe?
|
||||
/libc-test/functional/strtod_long.exe?
|
||||
/libc-test/functional/fscanf-static.exe?
|
||||
/libc-test/functional/swprintf.exe?
|
||||
/libc-test/functional/strtod.exe?
|
||||
/libc-test/functional/qsort.exe?
|
||||
/libc-test/functional/inet_pton-static.exe?
|
||||
/libc-test/functional/env.exe?
|
||||
/libc-test/functional/sscanf-static.exe?
|
||||
/libc-test/functional/tls_local_exec-static.exe?
|
||||
/libc-test/functional/strftime-static.exe?
|
||||
/libc-test/functional/dirname-static.exe?
|
||||
/libc-test/functional/pthread_cancel.exe?
|
||||
/libc-test/functional/fscanf.exe?
|
||||
/libc-test/functional/clock_gettime.exe?
|
||||
/libc-test/functional/crypt-static.exe?
|
||||
/libc-test/functional/socket.exe?
|
||||
/libc-test/functional/strptime.exe?
|
||||
/libc-test/functional/fcntl.exe?
|
||||
/libc-test/functional/string_memcpy.exe?
|
||||
/libc-test/functional/strtod_simple-static.exe?
|
||||
/libc-test/functional/pthread_mutex_pi.exe?
|
||||
/libc-test/functional/argv-static.exe?
|
||||
/libc-test/functional/search_insque-static.exe?
|
||||
/libc-test/functional/ungetc-static.exe?
|
||||
/libc-test/functional/string_memset-static.exe?
|
||||
/libc-test/functional/sem_open-static.exe?
|
||||
/libc-test/functional/clocale_mbfuncs-static.exe?
|
||||
/libc-test/functional/sscanf_long.exe?
|
||||
/libc-test/functional/string-static.exe?
|
||||
/libc-test/functional/ipc_sem-static.exe?
|
||||
/libc-test/functional/strtof.exe?
|
||||
/libc-test/functional/string_strstr-static.exe?
|
||||
/libc-test/functional/strtol.exe?
|
||||
/libc-test/functional/snprintf.exe?
|
||||
/libc-test/functional/tls_init.exe?
|
||||
/libc-test/functional/clocale_mbfuncs.exe?
|
||||
/libc-test/functional/iconv_open.exe?
|
||||
/libc-test/functional/snprintf-static.exe?
|
||||
/libc-test/functional/tls_init_dlopen.exe?
|
||||
/libc-test/functional/ipc_msg-static.exe?
|
||||
/libc-test/functional/time-static.exe?
|
||||
/libc-test/functional/tls_init-static.exe?
|
||||
/libc-test/functional/ungetc.exe?
|
||||
/libc-test/functional/strtod_simple.exe?
|
||||
/libc-test/functional/string_strchr.exe?
|
||||
/libc-test/functional/dlopen.exe?
|
||||
/libc-test/functional/vfork-static.exe?
|
||||
/libc-test/functional/ipc_shm-static.exe?
|
||||
/libc-test/functional/vfork.exe?
|
||||
/libc-test/functional/pthread_mutex.exe?
|
||||
/libc-test/functional/stat.exe?
|
||||
/libc-test/functional/strtold-static.exe?
|
||||
/libc-test/functional/ipc_sem.exe?
|
||||
/libc-test/functional/swprintf-static.exe?
|
||||
/libc-test/functional/popen.exe?
|
||||
/libc-test/functional/strtod_long-static.exe?
|
||||
/libc-test/functional/sscanf.exe?
|
||||
/libc-test/functional/setjmp.exe?
|
||||
/libc-test/functional/udiv.exe?
|
||||
/libc-test/functional/fwscanf.exe?
|
||||
/libc-test/functional/utime.exe?
|
||||
/libc-test/functional/utime-static.exe?
|
||||
/libc-test/functional/fnmatch-static.exe?
|
||||
/libc-test/functional/pthread_tsd.exe?
|
||||
/libc-test/functional/pthread_mutex_pi-static.exe?
|
||||
/libc-test/functional/pthread_mutex-static.exe?
|
||||
/libc-test/functional/qsort-static.exe?
|
||||
/libc-test/functional/string.exe?
|
||||
/libc-test/functional/pthread_cond-static.exe?
|
||||
/libc-test/functional/strftime.exe?
|
||||
/libc-test/functional/string_memmem-static.exe?
|
||||
/libc-test/functional/socket-static.exe?
|
||||
/libc-test/common/runtest.exe?
|
||||
/libc-test/regression/pthread_atfork-errno-clobber-static.exe?
|
||||
/libc-test/regression/setenv-oom.exe?
|
||||
/libc-test/regression/fpclassify-invalid-ld80.exe?
|
||||
/libc-test/regression/execle-env-static.exe?
|
||||
/libc-test/regression/setvbuf-unget-static.exe?
|
||||
/libc-test/regression/flockfile-list-static.exe?
|
||||
/libc-test/regression/sigaltstack.exe?
|
||||
/libc-test/regression/scanf-bytes-consumed.exe?
|
||||
/libc-test/regression/putenv-doublefree-static.exe?
|
||||
/libc-test/regression/getpwnam_r-errno.exe?
|
||||
/libc-test/regression/ftello-unflushed-append-static.exe?
|
||||
/libc-test/regression/setvbuf-unget.exe?
|
||||
/libc-test/regression/inet_ntop-v4mapped-static.exe?
|
||||
/libc-test/regression/pthread_cancel-sem_wait.exe?
|
||||
/libc-test/regression/inet_pton-empty-last-field-static.exe?
|
||||
/libc-test/regression/sscanf-eof-static.exe?
|
||||
/libc-test/regression/ftello-unflushed-append.exe?
|
||||
/libc-test/regression/strverscmp-static.exe?
|
||||
/libc-test/regression/printf-fmt-n-static.exe?
|
||||
/libc-test/regression/inet_pton-empty-last-field.exe?
|
||||
/libc-test/regression/putenv-doublefree.exe?
|
||||
/libc-test/regression/mkstemp-failure.exe?
|
||||
/libc-test/regression/regex-backref-0-static.exe?
|
||||
/libc-test/regression/malloc-oom-static.exe?
|
||||
/libc-test/regression/sigprocmask-internal.exe?
|
||||
/libc-test/regression/pthread-robust-detach-static.exe?
|
||||
/libc-test/regression/memmem-oob-static.exe?
|
||||
/libc-test/regression/memmem-oob-read.exe?
|
||||
/libc-test/regression/lseek-large.exe?
|
||||
/libc-test/regression/printf-fmt-g-zeros.exe?
|
||||
/libc-test/regression/malloc-0.exe?
|
||||
/libc-test/regression/wcsstr-false-negative.exe?
|
||||
/libc-test/regression/pthread_cond-smasher-static.exe?
|
||||
/libc-test/regression/wcsstr-false-negative-static.exe?
|
||||
/libc-test/regression/tls_get_new-dtv.exe?
|
||||
/libc-test/regression/printf-fmt-g-round-static.exe?
|
||||
/libc-test/regression/uselocale-0.exe?
|
||||
/libc-test/regression/flockfile-list.exe?
|
||||
/libc-test/regression/getpwnam_r-errno-static.exe?
|
||||
/libc-test/regression/dn_expand-ptr-0-static.exe?
|
||||
/libc-test/regression/malloc-brk-fail-static.exe?
|
||||
/libc-test/regression/statvfs.exe?
|
||||
/libc-test/regression/scanf-match-literal-eof-static.exe?
|
||||
/libc-test/regression/daemon-failure.exe?
|
||||
/libc-test/regression/fflush-exit.exe?
|
||||
/libc-test/regression/mkstemp-failure-static.exe?
|
||||
/libc-test/regression/pthread-robust-detach.exe?
|
||||
/libc-test/regression/syscall-sign-extend-static.exe?
|
||||
/libc-test/regression/rewind-clear-error.exe?
|
||||
/libc-test/regression/setenv-oom-static.exe?
|
||||
/libc-test/regression/regex-escaped-high-byte.exe?
|
||||
/libc-test/regression/dn_expand-empty-static.exe?
|
||||
/libc-test/regression/regex-negated-range-static.exe?
|
||||
/libc-test/regression/regex-ere-backref-static.exe?
|
||||
/libc-test/regression/sem_close-unmap-static.exe?
|
||||
/libc-test/regression/mkdtemp-failure.exe?
|
||||
/libc-test/regression/printf-fmt-n.exe?
|
||||
/libc-test/regression/rlimit-open-files.exe?
|
||||
/libc-test/regression/iswspace-null.exe?
|
||||
/libc-test/regression/pthread_exit-cancel.exe?
|
||||
/libc-test/regression/sigreturn.exe?
|
||||
/libc-test/regression/wcsncpy-read-overflow-static.exe?
|
||||
/libc-test/regression/daemon-failure-static.exe?
|
||||
/libc-test/regression/memmem-oob.exe?
|
||||
/libc-test/regression/pthread_condattr_setclock.exe?
|
||||
/libc-test/regression/lrand48-signextend.exe?
|
||||
/libc-test/regression/rlimit-open-files-static.exe?
|
||||
/libc-test/regression/sigaltstack-static.exe?
|
||||
/libc-test/regression/regex-bracket-icase.exe?
|
||||
/libc-test/regression/pthread_cond-smasher.exe?
|
||||
/libc-test/regression/scanf-bytes-consumed-static.exe?
|
||||
/libc-test/regression/scanf-match-literal-eof.exe?
|
||||
/libc-test/regression/malloc-0-static.exe?
|
||||
/libc-test/regression/lrand48-signextend-static.exe?
|
||||
/libc-test/regression/raise-race-static.exe?
|
||||
/libc-test/regression/printf-1e9-oob-static.exe?
|
||||
/libc-test/regression/fgetwc-buffering.exe?
|
||||
/libc-test/regression/pthread_cancel-sem_wait-static.exe?
|
||||
/libc-test/regression/sem_close-unmap.exe?
|
||||
/libc-test/regression/printf-fmt-g-round.exe?
|
||||
/libc-test/regression/pthread_once-deadlock-static.exe?
|
||||
/libc-test/regression/pthread_atfork-errno-clobber.exe?
|
||||
/libc-test/regression/pthread_exit-cancel-static.exe?
|
||||
/libc-test/regression/pthread_once-deadlock.exe?
|
||||
/libc-test/regression/pthread_exit-dtor.exe?
|
||||
/libc-test/regression/iconv-roundtrips-static.exe?
|
||||
/libc-test/regression/syscall-sign-extend.exe?
|
||||
/libc-test/regression/uselocale-0-static.exe?
|
||||
/libc-test/regression/regex-bracket-icase-static.exe?
|
||||
/libc-test/regression/strverscmp.exe?
|
||||
/libc-test/regression/lseek-large-static.exe?
|
||||
/libc-test/regression/scanf-nullbyte-char.exe?
|
||||
/libc-test/regression/malloc-brk-fail.exe?
|
||||
/libc-test/regression/pthread_create-oom-static.exe?
|
||||
/libc-test/regression/regexec-nosub.exe?
|
||||
/libc-test/regression/rewind-clear-error-static.exe?
|
||||
/libc-test/regression/regex-negated-range.exe?
|
||||
/libc-test/regression/inet_ntop-v4mapped.exe?
|
||||
/libc-test/regression/regex-ere-backref.exe?
|
||||
/libc-test/regression/memmem-oob-read-static.exe?
|
||||
/libc-test/regression/sscanf-eof.exe?
|
||||
/libc-test/regression/iswspace-null-static.exe?
|
||||
/libc-test/regression/printf-1e9-oob.exe?
|
||||
/libc-test/regression/mbsrtowcs-overflow-static.exe?
|
||||
/libc-test/regression/dn_expand-ptr-0.exe?
|
||||
/libc-test/regression/regexec-nosub-static.exe?
|
||||
/libc-test/regression/iconv-roundtrips.exe?
|
||||
/libc-test/regression/pthread_rwlock-ebusy.exe?
|
||||
/libc-test/regression/getpwnam_r-crash.exe?
|
||||
/libc-test/regression/printf-fmt-g-zeros-static.exe?
|
||||
/libc-test/regression/sigprocmask-internal-static.exe?
|
||||
/libc-test/regression/pthread_cond_wait-cancel_ignored.exe?
|
||||
/libc-test/regression/sigreturn-static.exe?
|
||||
/libc-test/regression/scanf-nullbyte-char-static.exe?
|
||||
/libc-test/regression/execle-env.exe?
|
||||
/libc-test/regression/raise-race.exe?
|
||||
/libc-test/regression/getpwnam_r-crash-static.exe?
|
||||
/libc-test/regression/statvfs-static.exe?
|
||||
/libc-test/regression/pthread_rwlock-ebusy-static.exe?
|
||||
/libc-test/regression/pthread_create-oom.exe?
|
||||
/libc-test/regression/fpclassify-invalid-ld80-static.exe?
|
||||
/libc-test/regression/fgets-eof.exe?
|
||||
/libc-test/regression/regex-escaped-high-byte-static.exe?
|
||||
/libc-test/regression/fgetwc-buffering-static.exe?
|
||||
/libc-test/regression/mkdtemp-failure-static.exe?
|
||||
/libc-test/regression/fgets-eof-static.exe?
|
||||
/libc-test/regression/malloc-oom.exe?
|
||||
/libc-test/regression/wcsncpy-read-overflow.exe?
|
||||
/libc-test/regression/mbsrtowcs-overflow.exe?
|
||||
/libc-test/regression/pthread_exit-dtor-static.exe?
|
||||
/libc-test/regression/regex-backref-0.exe?
|
||||
/libc-test/regression/pthread_cond_wait-cancel_ignored-static.exe?
|
||||
/libc-test/regression/pthread_condattr_setclock-static.exe?
|
||||
/libc-test/regression/fflush-exit-static.exe?
|
||||
/libc-test/regression/dn_expand-empty.exe?
|
||||
/libc-test/musl/pleval-static.exe?
|
||||
/libc-test/math/nextafter.exe?
|
||||
/libc-test/math/acosf.exe?
|
||||
/libc-test/math/scalbln.exe?
|
||||
/libc-test/math/ceil.exe?
|
||||
/libc-test/math/erff.exe?
|
||||
/libc-test/math/exp2l.exe?
|
||||
/libc-test/math/sinh.exe?
|
||||
/libc-test/math/remainderl.exe?
|
||||
/libc-test/math/ceill.exe?
|
||||
/libc-test/math/roundl.exe?
|
||||
/libc-test/math/lgammal.exe?
|
||||
/libc-test/math/lrintl.exe?
|
||||
/libc-test/math/exp10.exe?
|
||||
/libc-test/math/asinh.exe?
|
||||
/libc-test/math/fabs.exe?
|
||||
/libc-test/math/ldexpl.exe?
|
||||
/libc-test/math/fminf.exe?
|
||||
/libc-test/math/atan.exe?
|
||||
/libc-test/math/y0.exe?
|
||||
/libc-test/math/pow10l.exe?
|
||||
/libc-test/math/exp10f.exe?
|
||||
/libc-test/math/tan.exe?
|
||||
/libc-test/math/modf.exe?
|
||||
/libc-test/math/log10f.exe?
|
||||
/libc-test/math/log2.exe?
|
||||
/libc-test/math/fmaxl.exe?
|
||||
/libc-test/math/j0.exe?
|
||||
/libc-test/math/nexttowardl.exe?
|
||||
/libc-test/math/rintf.exe?
|
||||
/libc-test/math/scalblnf.exe?
|
||||
/libc-test/math/lrint.exe?
|
||||
/libc-test/math/sinl.exe?
|
||||
/libc-test/math/log1pl.exe?
|
||||
/libc-test/math/rint.exe?
|
||||
/libc-test/math/logf.exe?
|
||||
/libc-test/math/j1.exe?
|
||||
/libc-test/math/nearbyintl.exe?
|
||||
/libc-test/math/sinhl.exe?
|
||||
/libc-test/math/logbf.exe?
|
||||
/libc-test/math/jnf.exe?
|
||||
/libc-test/math/ldexpf.exe?
|
||||
/libc-test/math/truncf.exe?
|
||||
/libc-test/math/llrintf.exe?
|
||||
/libc-test/math/pow10f.exe?
|
||||
/libc-test/math/cosf.exe?
|
||||
/libc-test/math/log2f.exe?
|
||||
/libc-test/math/yn.exe?
|
||||
/libc-test/math/log1pf.exe?
|
||||
/libc-test/math/logl.exe?
|
||||
/libc-test/math/nearbyintf.exe?
|
||||
/libc-test/math/logbl.exe?
|
||||
/libc-test/math/lgammaf_r.exe?
|
||||
/libc-test/math/nearbyint.exe?
|
||||
/libc-test/math/hypotl.exe?
|
||||
/libc-test/math/asinhl.exe?
|
||||
/libc-test/math/logb.exe?
|
||||
/libc-test/math/scalblnl.exe?
|
||||
/libc-test/math/ilogbf.exe?
|
||||
/libc-test/math/atan2f.exe?
|
||||
/libc-test/math/fpclassify.exe?
|
||||
/libc-test/math/asinl.exe?
|
||||
/libc-test/math/log1p.exe?
|
||||
/libc-test/math/sqrtf.exe?
|
||||
/libc-test/math/sqrt.exe?
|
||||
/libc-test/math/llrint.exe?
|
||||
/libc-test/math/modfl.exe?
|
||||
/libc-test/math/fdiml.exe?
|
||||
/libc-test/math/fenv.exe?
|
||||
/libc-test/math/sincosf.exe?
|
||||
/libc-test/math/log10.exe?
|
||||
/libc-test/math/ceilf.exe?
|
||||
/libc-test/math/erf.exe?
|
||||
/libc-test/math/erfl.exe?
|
||||
/libc-test/math/lroundf.exe?
|
||||
/libc-test/math/j1f.exe?
|
||||
/libc-test/math/sqrtl.exe?
|
||||
/libc-test/math/fabsf.exe?
|
||||
/libc-test/math/lgamma.exe?
|
||||
/libc-test/math/llroundl.exe?
|
||||
/libc-test/math/floorl.exe?
|
||||
/libc-test/math/fminl.exe?
|
||||
/libc-test/math/llround.exe?
|
||||
/libc-test/math/tgammal.exe?
|
||||
/libc-test/math/drem.exe?
|
||||
/libc-test/math/tgamma.exe?
|
||||
/libc-test/math/exp2.exe?
|
||||
/libc-test/math/atanhl.exe?
|
||||
/libc-test/math/exp10l.exe?
|
||||
/libc-test/math/remquol.exe?
|
||||
/libc-test/math/y1.exe?
|
||||
/libc-test/math/scalbn.exe?
|
||||
/libc-test/math/rintl.exe?
|
||||
/libc-test/math/remquof.exe?
|
||||
/libc-test/math/fmod.exe?
|
||||
/libc-test/math/y1f.exe?
|
||||
/libc-test/math/expf.exe?
|
||||
/libc-test/math/exp.exe?
|
||||
/libc-test/math/cbrt.exe?
|
||||
/libc-test/math/ldexp.exe?
|
||||
/libc-test/math/nextafterf.exe?
|
||||
/libc-test/math/fmodl.exe?
|
||||
/libc-test/math/sincosl.exe?
|
||||
/libc-test/math/tgammaf.exe?
|
||||
/libc-test/math/ilogbl.exe?
|
||||
/libc-test/math/log.exe?
|
||||
/libc-test/math/tanf.exe?
|
||||
/libc-test/math/asinhf.exe?
|
||||
/libc-test/math/powf.exe?
|
||||
/libc-test/math/nexttowardf.exe?
|
||||
/libc-test/math/atanl.exe?
|
||||
/libc-test/math/coshl.exe?
|
||||
/libc-test/math/llroundf.exe?
|
||||
/libc-test/math/nexttoward.exe?
|
||||
/libc-test/math/acosh.exe?
|
||||
/libc-test/math/sin.exe?
|
||||
/libc-test/math/expl.exe?
|
||||
/libc-test/math/tanl.exe?
|
||||
/libc-test/math/lrintf.exe?
|
||||
/libc-test/math/fmin.exe?
|
||||
/libc-test/math/fmaf.exe?
|
||||
/libc-test/math/asin.exe?
|
||||
/libc-test/math/lgammal_r.exe?
|
||||
/libc-test/math/pow10.exe?
|
||||
/libc-test/math/floor.exe?
|
||||
/libc-test/math/j0f.exe?
|
||||
/libc-test/math/nextafterl.exe?
|
||||
/libc-test/math/fmax.exe?
|
||||
/libc-test/math/asinf.exe?
|
||||
/libc-test/math/cosh.exe?
|
||||
/libc-test/math/frexp.exe?
|
||||
/libc-test/math/acos.exe?
|
||||
/libc-test/math/trunc.exe?
|
||||
/libc-test/math/fdimf.exe?
|
||||
/libc-test/math/acoshf.exe?
|
||||
/libc-test/math/atanh.exe?
|
||||
/libc-test/math/exp2f.exe?
|
||||
/libc-test/math/jn.exe?
|
||||
/libc-test/math/ynf.exe?
|
||||
/libc-test/math/floorf.exe?
|
||||
/libc-test/math/scalb.exe?
|
||||
/libc-test/math/atanhf.exe?
|
||||
/libc-test/math/fma.exe?
|
||||
/libc-test/math/scalbf.exe?
|
||||
/libc-test/math/expm1.exe?
|
||||
/libc-test/math/copysign.exe?
|
||||
/libc-test/math/lroundl.exe?
|
||||
/libc-test/math/cos.exe?
|
||||
/libc-test/math/erfcf.exe?
|
||||
/libc-test/math/truncl.exe?
|
||||
/libc-test/math/scalbnl.exe?
|
||||
/libc-test/math/acoshl.exe?
|
||||
/libc-test/math/cosl.exe?
|
||||
/libc-test/math/sinhf.exe?
|
||||
/libc-test/math/sinf.exe?
|
||||
/libc-test/math/fmal.exe?
|
||||
/libc-test/math/remainder.exe?
|
||||
/libc-test/math/lgammaf.exe?
|
||||
/libc-test/math/fabsl.exe?
|
||||
/libc-test/math/cbrtf.exe?
|
||||
/libc-test/math/log10l.exe?
|
||||
/libc-test/math/pow.exe?
|
||||
/libc-test/math/atan2l.exe?
|
||||
/libc-test/math/powl.exe?
|
||||
/libc-test/math/log2l.exe?
|
||||
/libc-test/math/remquo.exe?
|
||||
/libc-test/math/sincos.exe?
|
||||
/libc-test/math/frexpf.exe?
|
||||
/libc-test/math/fmaxf.exe?
|
||||
/libc-test/math/expm1f.exe?
|
||||
/libc-test/math/llrintl.exe?
|
||||
/libc-test/math/tanhf.exe?
|
||||
/libc-test/math/hypotf.exe?
|
||||
/libc-test/math/acosl.exe?
|
||||
/libc-test/math/remainderf.exe?
|
||||
/libc-test/math/lgamma_r.exe?
|
||||
/libc-test/math/fmodf.exe?
|
||||
/libc-test/math/tanh.exe?
|
||||
/libc-test/math/hypot.exe?
|
||||
/libc-test/math/round.exe?
|
||||
/libc-test/math/frexpl.exe?
|
||||
/libc-test/math/expm1l.exe?
|
||||
/libc-test/math/tanhl.exe?
|
||||
/libc-test/math/copysignf.exe?
|
||||
/libc-test/math/atan2.exe?
|
||||
/libc-test/math/coshf.exe?
|
||||
/libc-test/math/scalbnf.exe?
|
||||
/libc-test/math/ilogb.exe?
|
||||
/libc-test/math/y0f.exe?
|
||||
/libc-test/math/cbrtl.exe?
|
||||
/libc-test/math/erfcl.exe?
|
||||
/libc-test/math/copysignl.exe?
|
||||
/libc-test/math/lround.exe?
|
||||
/libc-test/math/isless.exe?
|
||||
/libc-test/math/erfc.exe?
|
||||
/libc-test/math/atanf.exe?
|
||||
/libc-test/math/dremf.exe?
|
||||
/libc-test/math/roundf.exe?
|
||||
/libc-test/math/fdim.exe?
|
||||
/libc-test/math/modff.exe?
|
||||
|
|
@ -1,477 +0,0 @@
|
|||
/libc-test/src/functional/search_tsearch.exe
|
||||
/libc-test/src/functional/fcntl-static.exe
|
||||
/libc-test/src/functional/memstream-static.exe
|
||||
/libc-test/src/functional/string_strcspn.exe
|
||||
/libc-test/src/functional/crypt.exe
|
||||
/libc-test/src/functional/tgmath.exe
|
||||
/libc-test/src/functional/pthread_cancel-static.exe
|
||||
/libc-test/src/functional/argv.exe
|
||||
/libc-test/src/functional/strtod-static.exe
|
||||
/libc-test/src/functional/time.exe
|
||||
/libc-test/src/functional/search_insque.exe
|
||||
/libc-test/src/functional/pthread_tsd-static.exe
|
||||
/libc-test/src/functional/fnmatch.exe
|
||||
/libc-test/src/functional/udiv-static.exe
|
||||
/libc-test/src/functional/sem_open.exe
|
||||
/libc-test/src/functional/random.exe
|
||||
/libc-test/src/functional/strtold.exe
|
||||
/libc-test/src/functional/env-static.exe
|
||||
/libc-test/src/functional/string_memmem.exe
|
||||
/libc-test/src/functional/search_tsearch-static.exe
|
||||
/libc-test/src/functional/basename-static.exe
|
||||
/libc-test/src/functional/sem_init.exe
|
||||
/libc-test/src/functional/spawn-static.exe
|
||||
/libc-test/src/functional/strtof-static.exe
|
||||
/libc-test/src/functional/search_lsearch-static.exe
|
||||
/libc-test/src/functional/string_memcpy-static.exe
|
||||
/libc-test/src/functional/tgmath-static.exe
|
||||
/libc-test/src/functional/strtol-static.exe
|
||||
/libc-test/src/functional/dirname.exe
|
||||
/libc-test/src/functional/tls_align_dlopen.exe
|
||||
/libc-test/src/functional/setjmp-static.exe
|
||||
/libc-test/src/functional/wcsstr.exe
|
||||
/libc-test/src/functional/wcstol.exe
|
||||
/libc-test/src/functional/mbc.exe
|
||||
/libc-test/src/functional/iconv_open-static.exe
|
||||
/libc-test/src/functional/inet_pton.exe
|
||||
/libc-test/src/functional/pthread_cancel-points-static.exe
|
||||
/libc-test/src/functional/strptime-static.exe
|
||||
/libc-test/src/functional/search_hsearch-static.exe
|
||||
/libc-test/src/functional/string_strchr-static.exe
|
||||
/libc-test/src/functional/fdopen-static.exe
|
||||
/libc-test/src/functional/ipc_shm.exe
|
||||
/libc-test/src/functional/search_lsearch.exe
|
||||
/libc-test/src/functional/tls_align-static.exe
|
||||
/libc-test/src/functional/basename.exe
|
||||
/libc-test/src/functional/mbc-static.exe
|
||||
/libc-test/src/functional/pthread_robust-static.exe
|
||||
/libc-test/src/functional/wcstol-static.exe
|
||||
/libc-test/src/functional/fwscanf-static.exe
|
||||
/libc-test/src/functional/ipc_msg.exe
|
||||
/libc-test/src/functional/clock_gettime-static.exe
|
||||
/libc-test/src/functional/stat-static.exe
|
||||
/libc-test/src/functional/wcsstr-static.exe
|
||||
/libc-test/src/functional/spawn.exe
|
||||
/libc-test/src/functional/search_hsearch.exe
|
||||
/libc-test/src/functional/string_memset.exe
|
||||
/libc-test/src/functional/string_strcspn-static.exe
|
||||
/libc-test/src/functional/string_strstr.exe
|
||||
/libc-test/src/functional/pthread_robust.exe
|
||||
/libc-test/src/functional/sscanf_long-static.exe
|
||||
/libc-test/src/functional/pthread_cancel-points.exe
|
||||
/libc-test/src/functional/fdopen.exe
|
||||
/libc-test/src/functional/pthread_cond.exe
|
||||
/libc-test/src/functional/tls_align.exe
|
||||
/libc-test/src/functional/tls_local_exec.exe
|
||||
/libc-test/src/functional/memstream.exe
|
||||
/libc-test/src/functional/sem_init-static.exe
|
||||
/libc-test/src/functional/popen-static.exe
|
||||
/libc-test/src/functional/random-static.exe
|
||||
/libc-test/src/functional/strtod_long.exe
|
||||
/libc-test/src/functional/fscanf-static.exe
|
||||
/libc-test/src/functional/swprintf.exe
|
||||
/libc-test/src/functional/strtod.exe
|
||||
/libc-test/src/functional/qsort.exe
|
||||
/libc-test/src/functional/inet_pton-static.exe
|
||||
/libc-test/src/functional/env.exe
|
||||
/libc-test/src/functional/sscanf-static.exe
|
||||
/libc-test/src/functional/tls_local_exec-static.exe
|
||||
/libc-test/src/functional/strftime-static.exe
|
||||
/libc-test/src/functional/dirname-static.exe
|
||||
/libc-test/src/functional/pthread_cancel.exe
|
||||
/libc-test/src/functional/fscanf.exe
|
||||
/libc-test/src/functional/clock_gettime.exe
|
||||
/libc-test/src/functional/crypt-static.exe
|
||||
/libc-test/src/functional/socket.exe
|
||||
/libc-test/src/functional/strptime.exe
|
||||
/libc-test/src/functional/fcntl.exe
|
||||
/libc-test/src/functional/string_memcpy.exe
|
||||
/libc-test/src/functional/strtod_simple-static.exe
|
||||
/libc-test/src/functional/pthread_mutex_pi.exe
|
||||
/libc-test/src/functional/argv-static.exe
|
||||
/libc-test/src/functional/search_insque-static.exe
|
||||
/libc-test/src/functional/ungetc-static.exe
|
||||
/libc-test/src/functional/string_memset-static.exe
|
||||
/libc-test/src/functional/sem_open-static.exe
|
||||
/libc-test/src/functional/clocale_mbfuncs-static.exe
|
||||
/libc-test/src/functional/sscanf_long.exe
|
||||
/libc-test/src/functional/string-static.exe
|
||||
/libc-test/src/functional/ipc_sem-static.exe
|
||||
/libc-test/src/functional/strtof.exe
|
||||
/libc-test/src/functional/string_strstr-static.exe
|
||||
/libc-test/src/functional/strtol.exe
|
||||
/libc-test/src/functional/snprintf.exe
|
||||
/libc-test/src/functional/tls_init.exe
|
||||
/libc-test/src/functional/clocale_mbfuncs.exe
|
||||
/libc-test/src/functional/iconv_open.exe
|
||||
/libc-test/src/functional/snprintf-static.exe
|
||||
/libc-test/src/functional/tls_init_dlopen.exe
|
||||
/libc-test/src/functional/ipc_msg-static.exe
|
||||
/libc-test/src/functional/time-static.exe
|
||||
/libc-test/src/functional/tls_init-static.exe
|
||||
/libc-test/src/functional/ungetc.exe
|
||||
/libc-test/src/functional/strtod_simple.exe
|
||||
/libc-test/src/functional/string_strchr.exe
|
||||
/libc-test/src/functional/dlopen.exe
|
||||
/libc-test/src/functional/vfork-static.exe
|
||||
/libc-test/src/functional/ipc_shm-static.exe
|
||||
/libc-test/src/functional/vfork.exe
|
||||
/libc-test/src/functional/pthread_mutex.exe
|
||||
/libc-test/src/functional/stat.exe
|
||||
/libc-test/src/functional/strtold-static.exe
|
||||
/libc-test/src/functional/ipc_sem.exe
|
||||
/libc-test/src/functional/swprintf-static.exe
|
||||
/libc-test/src/functional/popen.exe
|
||||
/libc-test/src/functional/strtod_long-static.exe
|
||||
/libc-test/src/functional/sscanf.exe
|
||||
/libc-test/src/functional/setjmp.exe
|
||||
/libc-test/src/functional/udiv.exe
|
||||
/libc-test/src/functional/fwscanf.exe
|
||||
/libc-test/src/functional/utime.exe
|
||||
/libc-test/src/functional/utime-static.exe
|
||||
/libc-test/src/functional/fnmatch-static.exe
|
||||
/libc-test/src/functional/pthread_tsd.exe
|
||||
/libc-test/src/functional/pthread_mutex_pi-static.exe
|
||||
/libc-test/src/functional/pthread_mutex-static.exe
|
||||
/libc-test/src/functional/qsort-static.exe
|
||||
/libc-test/src/functional/string.exe
|
||||
/libc-test/src/functional/pthread_cond-static.exe
|
||||
/libc-test/src/functional/strftime.exe
|
||||
/libc-test/src/functional/string_memmem-static.exe
|
||||
/libc-test/src/functional/socket-static.exe
|
||||
/libc-test/src/common/runtest.exe
|
||||
/libc-test/src/regression/pthread_atfork-errno-clobber-static.exe
|
||||
/libc-test/src/regression/setenv-oom.exe
|
||||
/libc-test/src/regression/fpclassify-invalid-ld80.exe
|
||||
/libc-test/src/regression/execle-env-static.exe
|
||||
/libc-test/src/regression/setvbuf-unget-static.exe
|
||||
/libc-test/src/regression/flockfile-list-static.exe
|
||||
/libc-test/src/regression/sigaltstack.exe
|
||||
/libc-test/src/regression/scanf-bytes-consumed.exe
|
||||
/libc-test/src/regression/putenv-doublefree-static.exe
|
||||
/libc-test/src/regression/getpwnam_r-errno.exe
|
||||
/libc-test/src/regression/ftello-unflushed-append-static.exe
|
||||
/libc-test/src/regression/setvbuf-unget.exe
|
||||
/libc-test/src/regression/inet_ntop-v4mapped-static.exe
|
||||
/libc-test/src/regression/pthread_cancel-sem_wait.exe
|
||||
/libc-test/src/regression/inet_pton-empty-last-field-static.exe
|
||||
/libc-test/src/regression/sscanf-eof-static.exe
|
||||
/libc-test/src/regression/ftello-unflushed-append.exe
|
||||
/libc-test/src/regression/strverscmp-static.exe
|
||||
/libc-test/src/regression/printf-fmt-n-static.exe
|
||||
/libc-test/src/regression/inet_pton-empty-last-field.exe
|
||||
/libc-test/src/regression/putenv-doublefree.exe
|
||||
/libc-test/src/regression/mkstemp-failure.exe
|
||||
/libc-test/src/regression/regex-backref-0-static.exe
|
||||
/libc-test/src/regression/malloc-oom-static.exe
|
||||
/libc-test/src/regression/sigprocmask-internal.exe
|
||||
/libc-test/src/regression/pthread-robust-detach-static.exe
|
||||
/libc-test/src/regression/memmem-oob-static.exe
|
||||
/libc-test/src/regression/memmem-oob-read.exe
|
||||
/libc-test/src/regression/lseek-large.exe
|
||||
/libc-test/src/regression/printf-fmt-g-zeros.exe
|
||||
/libc-test/src/regression/malloc-0.exe
|
||||
/libc-test/src/regression/wcsstr-false-negative.exe
|
||||
/libc-test/src/regression/pthread_cond-smasher-static.exe
|
||||
/libc-test/src/regression/wcsstr-false-negative-static.exe
|
||||
/libc-test/src/regression/tls_get_new-dtv.exe
|
||||
/libc-test/src/regression/printf-fmt-g-round-static.exe
|
||||
/libc-test/src/regression/uselocale-0.exe
|
||||
/libc-test/src/regression/flockfile-list.exe
|
||||
/libc-test/src/regression/getpwnam_r-errno-static.exe
|
||||
/libc-test/src/regression/dn_expand-ptr-0-static.exe
|
||||
/libc-test/src/regression/malloc-brk-fail-static.exe
|
||||
/libc-test/src/regression/statvfs.exe
|
||||
/libc-test/src/regression/scanf-match-literal-eof-static.exe
|
||||
/libc-test/src/regression/daemon-failure.exe
|
||||
/libc-test/src/regression/fflush-exit.exe
|
||||
/libc-test/src/regression/mkstemp-failure-static.exe
|
||||
/libc-test/src/regression/pthread-robust-detach.exe
|
||||
/libc-test/src/regression/syscall-sign-extend-static.exe
|
||||
/libc-test/src/regression/rewind-clear-error.exe
|
||||
/libc-test/src/regression/setenv-oom-static.exe
|
||||
/libc-test/src/regression/regex-escaped-high-byte.exe
|
||||
/libc-test/src/regression/dn_expand-empty-static.exe
|
||||
/libc-test/src/regression/regex-negated-range-static.exe
|
||||
/libc-test/src/regression/regex-ere-backref-static.exe
|
||||
/libc-test/src/regression/sem_close-unmap-static.exe
|
||||
/libc-test/src/regression/mkdtemp-failure.exe
|
||||
/libc-test/src/regression/printf-fmt-n.exe
|
||||
/libc-test/src/regression/rlimit-open-files.exe
|
||||
/libc-test/src/regression/iswspace-null.exe
|
||||
/libc-test/src/regression/pthread_exit-cancel.exe
|
||||
/libc-test/src/regression/sigreturn.exe
|
||||
/libc-test/src/regression/wcsncpy-read-overflow-static.exe
|
||||
/libc-test/src/regression/daemon-failure-static.exe
|
||||
/libc-test/src/regression/memmem-oob.exe
|
||||
/libc-test/src/regression/pthread_condattr_setclock.exe
|
||||
/libc-test/src/regression/lrand48-signextend.exe
|
||||
/libc-test/src/regression/rlimit-open-files-static.exe
|
||||
/libc-test/src/regression/sigaltstack-static.exe
|
||||
/libc-test/src/regression/regex-bracket-icase.exe
|
||||
/libc-test/src/regression/pthread_cond-smasher.exe
|
||||
/libc-test/src/regression/scanf-bytes-consumed-static.exe
|
||||
/libc-test/src/regression/scanf-match-literal-eof.exe
|
||||
/libc-test/src/regression/malloc-0-static.exe
|
||||
/libc-test/src/regression/lrand48-signextend-static.exe
|
||||
/libc-test/src/regression/raise-race-static.exe
|
||||
/libc-test/src/regression/printf-1e9-oob-static.exe
|
||||
/libc-test/src/regression/fgetwc-buffering.exe
|
||||
/libc-test/src/regression/pthread_cancel-sem_wait-static.exe
|
||||
/libc-test/src/regression/sem_close-unmap.exe
|
||||
/libc-test/src/regression/printf-fmt-g-round.exe
|
||||
/libc-test/src/regression/pthread_once-deadlock-static.exe
|
||||
/libc-test/src/regression/pthread_atfork-errno-clobber.exe
|
||||
/libc-test/src/regression/pthread_exit-cancel-static.exe
|
||||
/libc-test/src/regression/pthread_once-deadlock.exe
|
||||
/libc-test/src/regression/pthread_exit-dtor.exe
|
||||
/libc-test/src/regression/iconv-roundtrips-static.exe
|
||||
/libc-test/src/regression/syscall-sign-extend.exe
|
||||
/libc-test/src/regression/uselocale-0-static.exe
|
||||
/libc-test/src/regression/regex-bracket-icase-static.exe
|
||||
/libc-test/src/regression/strverscmp.exe
|
||||
/libc-test/src/regression/lseek-large-static.exe
|
||||
/libc-test/src/regression/scanf-nullbyte-char.exe
|
||||
/libc-test/src/regression/malloc-brk-fail.exe
|
||||
/libc-test/src/regression/pthread_create-oom-static.exe
|
||||
/libc-test/src/regression/regexec-nosub.exe
|
||||
/libc-test/src/regression/rewind-clear-error-static.exe
|
||||
/libc-test/src/regression/regex-negated-range.exe
|
||||
/libc-test/src/regression/inet_ntop-v4mapped.exe
|
||||
/libc-test/src/regression/regex-ere-backref.exe
|
||||
/libc-test/src/regression/memmem-oob-read-static.exe
|
||||
/libc-test/src/regression/sscanf-eof.exe
|
||||
/libc-test/src/regression/iswspace-null-static.exe
|
||||
/libc-test/src/regression/printf-1e9-oob.exe
|
||||
/libc-test/src/regression/mbsrtowcs-overflow-static.exe
|
||||
/libc-test/src/regression/dn_expand-ptr-0.exe
|
||||
/libc-test/src/regression/regexec-nosub-static.exe
|
||||
/libc-test/src/regression/iconv-roundtrips.exe
|
||||
/libc-test/src/regression/pthread_rwlock-ebusy.exe
|
||||
/libc-test/src/regression/getpwnam_r-crash.exe
|
||||
/libc-test/src/regression/printf-fmt-g-zeros-static.exe
|
||||
/libc-test/src/regression/sigprocmask-internal-static.exe
|
||||
/libc-test/src/regression/pthread_cond_wait-cancel_ignored.exe
|
||||
/libc-test/src/regression/sigreturn-static.exe
|
||||
/libc-test/src/regression/scanf-nullbyte-char-static.exe
|
||||
/libc-test/src/regression/execle-env.exe
|
||||
/libc-test/src/regression/raise-race.exe
|
||||
/libc-test/src/regression/getpwnam_r-crash-static.exe
|
||||
/libc-test/src/regression/statvfs-static.exe
|
||||
/libc-test/src/regression/pthread_rwlock-ebusy-static.exe
|
||||
/libc-test/src/regression/pthread_create-oom.exe
|
||||
/libc-test/src/regression/fpclassify-invalid-ld80-static.exe
|
||||
/libc-test/src/regression/fgets-eof.exe
|
||||
/libc-test/src/regression/regex-escaped-high-byte-static.exe
|
||||
/libc-test/src/regression/fgetwc-buffering-static.exe
|
||||
/libc-test/src/regression/mkdtemp-failure-static.exe
|
||||
/libc-test/src/regression/fgets-eof-static.exe
|
||||
/libc-test/src/regression/malloc-oom.exe
|
||||
/libc-test/src/regression/wcsncpy-read-overflow.exe
|
||||
/libc-test/src/regression/mbsrtowcs-overflow.exe
|
||||
/libc-test/src/regression/pthread_exit-dtor-static.exe
|
||||
/libc-test/src/regression/regex-backref-0.exe
|
||||
/libc-test/src/regression/pthread_cond_wait-cancel_ignored-static.exe
|
||||
/libc-test/src/regression/pthread_condattr_setclock-static.exe
|
||||
/libc-test/src/regression/fflush-exit-static.exe
|
||||
/libc-test/src/regression/dn_expand-empty.exe
|
||||
/libc-test/src/musl/pleval-static.exe
|
||||
/libc-test/src/math/nextafter.exe
|
||||
/libc-test/src/math/acosf.exe
|
||||
/libc-test/src/math/scalbln.exe
|
||||
/libc-test/src/math/ceil.exe
|
||||
/libc-test/src/math/erff.exe
|
||||
/libc-test/src/math/exp2l.exe
|
||||
/libc-test/src/math/sinh.exe
|
||||
/libc-test/src/math/remainderl.exe
|
||||
/libc-test/src/math/ceill.exe
|
||||
/libc-test/src/math/roundl.exe
|
||||
/libc-test/src/math/lgammal.exe
|
||||
/libc-test/src/math/lrintl.exe
|
||||
/libc-test/src/math/exp10.exe
|
||||
/libc-test/src/math/asinh.exe
|
||||
/libc-test/src/math/fabs.exe
|
||||
/libc-test/src/math/ldexpl.exe
|
||||
/libc-test/src/math/fminf.exe
|
||||
/libc-test/src/math/atan.exe
|
||||
/libc-test/src/math/y0.exe
|
||||
/libc-test/src/math/pow10l.exe
|
||||
/libc-test/src/math/exp10f.exe
|
||||
/libc-test/src/math/tan.exe
|
||||
/libc-test/src/math/modf.exe
|
||||
/libc-test/src/math/log10f.exe
|
||||
/libc-test/src/math/log2.exe
|
||||
/libc-test/src/math/fmaxl.exe
|
||||
/libc-test/src/math/j0.exe
|
||||
/libc-test/src/math/nexttowardl.exe
|
||||
/libc-test/src/math/rintf.exe
|
||||
/libc-test/src/math/scalblnf.exe
|
||||
/libc-test/src/math/lrint.exe
|
||||
/libc-test/src/math/sinl.exe
|
||||
/libc-test/src/math/log1pl.exe
|
||||
/libc-test/src/math/rint.exe
|
||||
/libc-test/src/math/logf.exe
|
||||
/libc-test/src/math/j1.exe
|
||||
/libc-test/src/math/nearbyintl.exe
|
||||
/libc-test/src/math/sinhl.exe
|
||||
/libc-test/src/math/logbf.exe
|
||||
/libc-test/src/math/jnf.exe
|
||||
/libc-test/src/math/ldexpf.exe
|
||||
/libc-test/src/math/truncf.exe
|
||||
/libc-test/src/math/llrintf.exe
|
||||
/libc-test/src/math/pow10f.exe
|
||||
/libc-test/src/math/cosf.exe
|
||||
/libc-test/src/math/log2f.exe
|
||||
/libc-test/src/math/yn.exe
|
||||
/libc-test/src/math/log1pf.exe
|
||||
/libc-test/src/math/logl.exe
|
||||
/libc-test/src/math/nearbyintf.exe
|
||||
/libc-test/src/math/logbl.exe
|
||||
/libc-test/src/math/lgammaf_r.exe
|
||||
/libc-test/src/math/nearbyint.exe
|
||||
/libc-test/src/math/hypotl.exe
|
||||
/libc-test/src/math/asinhl.exe
|
||||
/libc-test/src/math/logb.exe
|
||||
/libc-test/src/math/scalblnl.exe
|
||||
/libc-test/src/math/ilogbf.exe
|
||||
/libc-test/src/math/atan2f.exe
|
||||
/libc-test/src/math/fpclassify.exe
|
||||
/libc-test/src/math/asinl.exe
|
||||
/libc-test/src/math/log1p.exe
|
||||
/libc-test/src/math/sqrtf.exe
|
||||
/libc-test/src/math/sqrt.exe
|
||||
/libc-test/src/math/llrint.exe
|
||||
/libc-test/src/math/modfl.exe
|
||||
/libc-test/src/math/fdiml.exe
|
||||
/libc-test/src/math/fenv.exe
|
||||
/libc-test/src/math/sincosf.exe
|
||||
/libc-test/src/math/log10.exe
|
||||
/libc-test/src/math/ceilf.exe
|
||||
/libc-test/src/math/erf.exe
|
||||
/libc-test/src/math/erfl.exe
|
||||
/libc-test/src/math/lroundf.exe
|
||||
/libc-test/src/math/j1f.exe
|
||||
/libc-test/src/math/sqrtl.exe
|
||||
/libc-test/src/math/fabsf.exe
|
||||
/libc-test/src/math/lgamma.exe
|
||||
/libc-test/src/math/llroundl.exe
|
||||
/libc-test/src/math/floorl.exe
|
||||
/libc-test/src/math/fminl.exe
|
||||
/libc-test/src/math/llround.exe
|
||||
/libc-test/src/math/tgammal.exe
|
||||
/libc-test/src/math/drem.exe
|
||||
/libc-test/src/math/tgamma.exe
|
||||
/libc-test/src/math/exp2.exe
|
||||
/libc-test/src/math/atanhl.exe
|
||||
/libc-test/src/math/exp10l.exe
|
||||
/libc-test/src/math/remquol.exe
|
||||
/libc-test/src/math/y1.exe
|
||||
/libc-test/src/math/scalbn.exe
|
||||
/libc-test/src/math/rintl.exe
|
||||
/libc-test/src/math/remquof.exe
|
||||
/libc-test/src/math/fmod.exe
|
||||
/libc-test/src/math/y1f.exe
|
||||
/libc-test/src/math/expf.exe
|
||||
/libc-test/src/math/exp.exe
|
||||
/libc-test/src/math/cbrt.exe
|
||||
/libc-test/src/math/ldexp.exe
|
||||
/libc-test/src/math/nextafterf.exe
|
||||
/libc-test/src/math/fmodl.exe
|
||||
/libc-test/src/math/sincosl.exe
|
||||
/libc-test/src/math/tgammaf.exe
|
||||
/libc-test/src/math/ilogbl.exe
|
||||
/libc-test/src/math/log.exe
|
||||
/libc-test/src/math/tanf.exe
|
||||
/libc-test/src/math/asinhf.exe
|
||||
/libc-test/src/math/powf.exe
|
||||
/libc-test/src/math/nexttowardf.exe
|
||||
/libc-test/src/math/atanl.exe
|
||||
/libc-test/src/math/coshl.exe
|
||||
/libc-test/src/math/llroundf.exe
|
||||
/libc-test/src/math/nexttoward.exe
|
||||
/libc-test/src/math/acosh.exe
|
||||
/libc-test/src/math/sin.exe
|
||||
/libc-test/src/math/expl.exe
|
||||
/libc-test/src/math/tanl.exe
|
||||
/libc-test/src/math/lrintf.exe
|
||||
/libc-test/src/math/fmin.exe
|
||||
/libc-test/src/math/fmaf.exe
|
||||
/libc-test/src/math/asin.exe
|
||||
/libc-test/src/math/lgammal_r.exe
|
||||
/libc-test/src/math/pow10.exe
|
||||
/libc-test/src/math/floor.exe
|
||||
/libc-test/src/math/j0f.exe
|
||||
/libc-test/src/math/nextafterl.exe
|
||||
/libc-test/src/math/fmax.exe
|
||||
/libc-test/src/math/asinf.exe
|
||||
/libc-test/src/math/cosh.exe
|
||||
/libc-test/src/math/frexp.exe
|
||||
/libc-test/src/math/acos.exe
|
||||
/libc-test/src/math/trunc.exe
|
||||
/libc-test/src/math/fdimf.exe
|
||||
/libc-test/src/math/acoshf.exe
|
||||
/libc-test/src/math/atanh.exe
|
||||
/libc-test/src/math/exp2f.exe
|
||||
/libc-test/src/math/jn.exe
|
||||
/libc-test/src/math/ynf.exe
|
||||
/libc-test/src/math/floorf.exe
|
||||
/libc-test/src/math/scalb.exe
|
||||
/libc-test/src/math/atanhf.exe
|
||||
/libc-test/src/math/fma.exe
|
||||
/libc-test/src/math/scalbf.exe
|
||||
/libc-test/src/math/expm1.exe
|
||||
/libc-test/src/math/copysign.exe
|
||||
/libc-test/src/math/lroundl.exe
|
||||
/libc-test/src/math/cos.exe
|
||||
/libc-test/src/math/erfcf.exe
|
||||
/libc-test/src/math/truncl.exe
|
||||
/libc-test/src/math/scalbnl.exe
|
||||
/libc-test/src/math/acoshl.exe
|
||||
/libc-test/src/math/cosl.exe
|
||||
/libc-test/src/math/sinhf.exe
|
||||
/libc-test/src/math/sinf.exe
|
||||
/libc-test/src/math/fmal.exe
|
||||
/libc-test/src/math/remainder.exe
|
||||
/libc-test/src/math/lgammaf.exe
|
||||
/libc-test/src/math/fabsl.exe
|
||||
/libc-test/src/math/cbrtf.exe
|
||||
/libc-test/src/math/log10l.exe
|
||||
/libc-test/src/math/pow.exe
|
||||
/libc-test/src/math/atan2l.exe
|
||||
/libc-test/src/math/powl.exe
|
||||
/libc-test/src/math/log2l.exe
|
||||
/libc-test/src/math/remquo.exe
|
||||
/libc-test/src/math/sincos.exe
|
||||
/libc-test/src/math/frexpf.exe
|
||||
/libc-test/src/math/fmaxf.exe
|
||||
/libc-test/src/math/expm1f.exe
|
||||
/libc-test/src/math/llrintl.exe
|
||||
/libc-test/src/math/tanhf.exe
|
||||
/libc-test/src/math/hypotf.exe
|
||||
/libc-test/src/math/acosl.exe
|
||||
/libc-test/src/math/remainderf.exe
|
||||
/libc-test/src/math/lgamma_r.exe
|
||||
/libc-test/src/math/fmodf.exe
|
||||
/libc-test/src/math/tanh.exe
|
||||
/libc-test/src/math/hypot.exe
|
||||
/libc-test/src/math/round.exe
|
||||
/libc-test/src/math/frexpl.exe
|
||||
/libc-test/src/math/expm1l.exe
|
||||
/libc-test/src/math/tanhl.exe
|
||||
/libc-test/src/math/copysignf.exe
|
||||
/libc-test/src/math/atan2.exe
|
||||
/libc-test/src/math/coshf.exe
|
||||
/libc-test/src/math/scalbnf.exe
|
||||
/libc-test/src/math/ilogb.exe
|
||||
/libc-test/src/math/y0f.exe
|
||||
/libc-test/src/math/cbrtl.exe
|
||||
/libc-test/src/math/erfcl.exe
|
||||
/libc-test/src/math/copysignl.exe
|
||||
/libc-test/src/math/lround.exe
|
||||
/libc-test/src/math/isless.exe
|
||||
/libc-test/src/math/erfc.exe
|
||||
/libc-test/src/math/atanf.exe
|
||||
/libc-test/src/math/dremf.exe
|
||||
/libc-test/src/math/roundf.exe
|
||||
/libc-test/src/math/fdim.exe
|
||||
/libc-test/src/math/modff.exe
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
/bin/busybox ash -c exit
|
||||
/bin/busybox sh -c exit
|
||||
/bin/busybox basename /aaa/bbb
|
||||
/bin/busybox cal
|
||||
/bin/busybox clear
|
||||
/bin/busybox date
|
||||
/bin/busybox df
|
||||
/bin/busybox dirname /aaa/bbb
|
||||
/bin/busybox dmesg
|
||||
/bin/busybox du
|
||||
/bin/busybox expr 1 + 1
|
||||
/bin/busybox false
|
||||
/bin/busybox true
|
||||
/bin/busybox which ls
|
||||
/bin/busybox uname
|
||||
/bin/busybox uptime
|
||||
/bin/busybox printf "abc\n"
|
||||
/bin/busybox ps
|
||||
/bin/busybox pwd
|
||||
/bin/busybox free
|
||||
/bin/busybox hwclock
|
||||
/bin/busybox kill 10
|
||||
/bin/busybox ls
|
||||
/bin/busybox sleep 1
|
||||
/bin/busybox touch test.txt
|
||||
/bin/busybox echo "hello world" > test.txt
|
||||
/bin/busybox cat test.txt
|
||||
/bin/busybox cut -c 3 test.txt
|
||||
/bin/busybox od test.txt
|
||||
/bin/busybox head test.txt
|
||||
/bin/busybox tail test.txt
|
||||
/bin/busybox hexdump -C test.txt
|
||||
/bin/busybox md5sum test.txt
|
||||
/bin/busybox echo "ccccccc" >> test.txt
|
||||
/bin/busybox echo "bbbbbbb" >> test.txt
|
||||
/bin/busybox echo "aaaaaaa" >> test.txt
|
||||
/bin/busybox echo "2222222" >> test.txt
|
||||
/bin/busybox echo "1111111" >> test.txt
|
||||
/bin/busybox echo "bbbbbbb" >> test.txt
|
||||
/bin/busybox sort test.txt | ./busybox uniq
|
||||
/bin/busybox stat test.txt
|
||||
/bin/busybox strings test.txt
|
||||
/bin/busybox wc test.txt
|
||||
/bin/busybox [ -f test.txt ]
|
||||
/bin/busybox more test.txt
|
||||
/bin/busybox rm test.txt
|
||||
/bin/busybox mkdir test_dir
|
||||
/bin/busybox mv test_dir test
|
||||
/bin/busybox rmdir test
|
||||
/bin/busybox grep hello busybox_cmd.txt
|
||||
/bin/busybox cp busybox_cmd.txt busybox_cmd.bak
|
||||
/bin/busybox rm busybox_cmd.bak
|
||||
/bin/busybox find -name "busybox_cmd.txt"
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
/bin/lmbench_all lat_syscall -P 1 null
|
||||
/bin/lmbench_all lat_syscall -P 1 read
|
||||
/bin/lmbench_all lat_syscall -P 1 write
|
||||
/bin/busybox mkdir -p /var/tmp
|
||||
/bin/busybox touch /var/tmp/lmbench
|
||||
/bin/lmbench_all lat_syscall -P 1 stat /var/tmp/lmbench
|
||||
/bin/lmbench_all lat_syscall -P 1 fstat /var/tmp/lmbench
|
||||
/bin/lmbench_all lat_syscall -P 1 open /var/tmp/lmbench
|
||||
/bin/lmbench_all lat_select -n 100 -P 1 file
|
||||
/bin/lmbench_all lat_sig -P 1 install
|
||||
/bin/lmbench_all lat_sig -P 1 catch
|
||||
/bin/lmbench_all lat_sig -P 1 prot lat_sig
|
||||
/bin/lmbench_all lat_pipe -P 1
|
||||
/bin/lmbench_all lat_proc -P 1 fork
|
||||
/bin/lmbench_all lat_proc -P 1 exec
|
||||
/bin/busybox cp /bin/hello /tmp
|
||||
/bin/lmbench_all lat_proc -P 1 shell
|
||||
/bin/lmbench_all lmdd label="File /var/tmp/XXX write bandwidth:" of=/var/tmp/XXX move=645m fsync=1 print=3
|
||||
/bin/lmbench_all lat_pagefault -P 1 /var/tmp/XXX
|
||||
/bin/lmbench_all lat_mmap -P 1 512k /var/tmp/XXX
|
||||
/bin/lmbench_all lat_fs /var/tmp
|
||||
/bin/lmbench_all bw_pipe -P 1
|
||||
/bin/lmbench_all bw_file_rd -P 1 512k io_only /var/tmp/XXX
|
||||
/bin/lmbench_all bw_file_rd -P 1 512k open2close /var/tmp/XXX
|
||||
/bin/lmbench_all bw_mmap_rd -P 1 512k mmap_only /var/tmp/XXX
|
||||
/bin/lmbench_all bw_mmap_rd -P 1 512k open2close /var/tmp/XXX
|
||||
/bin/lmbench_all lat_ctx -P 1 -s 32 2 4 8 16 24 32 64 96
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
/bin/lua /bin/date.lua
|
||||
/bin/lua /bin/file_io.lua
|
||||
/bin/lua /bin/max_min.lua
|
||||
/bin/lua /bin/random.lua
|
||||
/bin/lua /bin/remove.lua
|
||||
/bin/lua /bin/round_num.lua
|
||||
/bin/lua /bin/sin30.lua
|
||||
/bin/lua /bin/sort.lua
|
||||
/bin/lua /bin/strings.lua
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
/bin/brk
|
||||
/bin/chdir
|
||||
/bin/clone
|
||||
/bin/close
|
||||
/bin/dup
|
||||
/bin/dup2
|
||||
/bin/execve
|
||||
/bin/exit
|
||||
/bin/fork
|
||||
/bin/fstat
|
||||
/bin/getcwd
|
||||
/bin/getdents
|
||||
/bin/getpid
|
||||
/bin/getppid
|
||||
/bin/gettimeofday
|
||||
/bin/mkdir_
|
||||
/bin/mmap
|
||||
/bin/mount
|
||||
/bin/munmap
|
||||
/bin/open
|
||||
/bin/openat
|
||||
/bin/pipe
|
||||
/bin/read
|
||||
/bin/sleep
|
||||
/bin/test_echo
|
||||
/bin/times
|
||||
/bin/umount
|
||||
/bin/uname
|
||||
/bin/unlink
|
||||
/bin/wait
|
||||
/bin/waitpid
|
||||
/bin/write
|
||||
/bin/yield
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
/libc-test/functional/pthread_cond.exe?
|
||||
/libc-test/functional/pthread_robust.exe?
|
||||
/libc-test/functional/vfork-static.exe?
|
||||
/libc-test/regression/pthread_cancel-sem_wait.exe?
|
||||
/libc-test/regression/execle-env-static.exe?
|
||||
/libc-test/regression/pthread-robust-detach-static.exe?
|
||||
/libc-test/functional/strptime.exe?
|
||||
/libc-test/functional/pthread_cancel-points-static.exe?
|
||||
/libc-test/regression/execle-env.exe?
|
||||
/libc-test/functional/popen-static.exe?
|
||||
/libc-test/regression/malloc-brk-fail-static.exe?
|
||||
/libc-test/regression/pthread_atfork-errno-clobber-static.exe?
|
||||
/libc-test/functional/sem_open-static.exe?
|
||||
/libc-test/functional/tls_init.exe?
|
||||
/libc-test/functional/vfork.exe?
|
||||
/libc-test/regression/setenv-oom-static.exe?
|
||||
/libc-test/functional/strtod_long.exe?
|
||||
/libc-test/functional/pthread_cancel-points.exe?
|
||||
/libc-test/regression/setenv-oom.exe?
|
||||
/libc-test/functional/pthread_mutex.exe?
|
||||
/oscomp/clone?
|
||||
/libc-test/functional/spawn-static.exe?
|
||||
/libc-test/regression/malloc-brk-fail.exe?
|
||||
/libc-test/regression/sem_close-unmap.exe?
|
||||
/libc-test/functional/fcntl-static.exe?
|
||||
/libc-test/regression/malloc-oom-static.exe?
|
||||
/bin/busybox?dmesg
|
||||
/libc-test/functional/ipc_sem-static.exe?
|
||||
/libc-test/functional/popen.exe?
|
||||
/libc-test/regression/sem_close-unmap-static.exe?
|
||||
/libc-test/functional/pthread_cond-static.exe?
|
||||
/libc-test/regression/pthread-robust-detach.exe?
|
||||
/libc-test/regression/tls_get_new-dtv.exe?
|
||||
/libc-test/regression/malloc-oom.exe?
|
||||
/libc-test/functional/ipc_msg.exe?
|
||||
/libc-test/math/fmod.exe?
|
||||
/libc-test/functional/strtod_long-static.exe?
|
||||
/libc-test/functional/strptime-static.exe?
|
||||
/libc-test/functional/ipc_msg-static.exe?
|
||||
/libc-test/regression/statvfs-static.exe?
|
||||
/libc-test/functional/tls_init_dlopen.exe?
|
||||
/libc-test/regression/pthread_cancel-sem_wait-static.exe?
|
||||
/libc-test/regression/statvfs.exe?
|
||||
/libc-test/functional/pthread_robust-static.exe?
|
||||
/libc-test/functional/tls_align_dlopen.exe?
|
||||
/libc-test/functional/sem_open.exe?
|
||||
/libc-test/regression/pthread_create-oom-static.exe?
|
||||
/libc-test/regression/pthread_create-oom.exe?
|
||||
/libc-test/functional/pthread_mutex-static.exe?
|
||||
/libc-test/functional/spawn.exe?
|
||||
/libc-test/functional/fcntl.exe?
|
||||
/libc-test/functional/tls_init-static.exe?
|
||||
/oscomp/waitpid?
|
||||
/oscomp/wait?
|
||||
/oscomp/fork?
|
||||
/oscomp/exit?
|
||||
/libc-test/common/runtest.exe?
|
||||
/libc-test/functional/tls_local_exec.exe?
|
||||
/libc-test/functional/sem_init-static.exe?
|
||||
/libc-test/functional/sem_init.exe?
|
||||
/libc-test/functional/tls_local_exec-static.exe?
|
||||
/libc-test/functional/pthread_tsd.exe?
|
||||
/libc-test/functional/pthread_tsd-static.exe?
|
||||
/libc-test/regression/pthread_cond-smasher-static.exe?
|
||||
/libc-test/regression/pthread_rwlock-ebusy-static.exe?
|
||||
/libc-test/regression/pthread_once-deadlock.exe?
|
||||
/libc-test/regression/pthread_exit-cancel-static.exe?
|
||||
/libc-test/regression/pthread_once-deadlock-static.exe?
|
||||
/libc-test/regression/pthread_exit-cancel.exe?
|
||||
/libc-test/regression/pthread_rwlock-ebusy.exe?
|
||||
/libc-test/regression/pthread_atfork-errno-clobber.exe?'
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
/libc-test/src/regression/getpwnam_r-errno-static.exe
|
||||
/libc-test/src/functional/ipc_msg-static.exe
|
||||
/libc-test/src/functional/ipc_sem-static.exe
|
||||
/libc-test/src/regression/daemon-failure-static.exe
|
||||
/libc-test/src/regression/malloc-oom-static.exe
|
||||
/libc-test/src/regression/statvfs.exe
|
||||
/libc-test/src/regression/pthread-robust-detach.exe
|
||||
/libc-test/src/functional/pthread_cancel-points.exe
|
||||
/libc-test/src/regression/daemon-failure.exe
|
||||
/libc-test/src/functional/spawn.exe
|
||||
/libc-test/src/regression/fflush-exit-static.exe
|
||||
/libc-test/src/functional/ipc_msg.exe
|
||||
/libc-test/src/functional/tls_init_dlopen.exe
|
||||
/libc-test/src/regression/pthread_create-oom-static.exe
|
||||
/libc-test/src/regression/getpwnam_r-crash.exe
|
||||
/libc-test/src/functional/ipc_shm-static.exe
|
||||
/libc-test/src/regression/getpwnam_r-crash-static.exe
|
||||
/libc-test/src/regression/pthread_rwlock-ebusy-static.exe
|
||||
/libc-test/src/regression/malloc-brk-fail.exe
|
||||
/libc-test/src/functional/vfork-static.exe
|
||||
/libc-test/src/functional/pthread_cancel-points-static.exe
|
||||
/libc-test/src/functional/ipc_sem.exe
|
||||
/libc-test/src/functional/tls_align_dlopen.exe
|
||||
/libc-test/src/functional/fcntl-static.exe
|
||||
/libc-test/src/regression/pthread_create-oom.exe
|
||||
/libc-test/src/regression/getpwnam_r-errno.exe
|
||||
/libc-test/src/regression/fflush-exit.exe
|
||||
/libc-test/src/regression/pthread_exit-dtor-static.exe
|
||||
/libc-test/src/regression/setenv-oom-static.exe
|
||||
/libc-test/src/functional/strptime-static.exe
|
||||
/libc-test/src/functional/popen-static.exe
|
||||
/libc-test/src/regression/pthread_exit-dtor.exe
|
||||
/libc-test/src/functional/vfork.exe
|
||||
/libc-test/src/regression/sem_close-unmap.exe
|
||||
/libc-test/src/functional/ipc_shm.exe
|
||||
/libc-test/src/regression/pthread-robust-detach-static.exe
|
||||
/libc-test/src/functional/sem_open-static.exe
|
||||
/libc-test/src/regression/malloc-brk-fail-static.exe
|
||||
/libc-test/src/functional/sem_open.exe
|
||||
/libc-test/src/functional/strptime.exe
|
||||
/libc-test/src/functional/spawn-static.exe
|
||||
/libc-test/src/regression/pthread_atfork-errno-clobber.exe
|
||||
/libc-test/src/functional/fcntl.exe
|
||||
/libc-test/src/functional/pthread_robust.exe
|
||||
/libc-test/src/regression/setenv-oom.exe
|
||||
/libc-test/src/functional/pthread_robust-static.exe
|
||||
/libc-test/src/regression/malloc-oom.exe
|
||||
/libc-test/src/functional/strtod_long.exe
|
||||
/libc-test/src/regression/pthread_atfork-errno-clobber-static.exe
|
||||
/libc-test/src/functional/strtod_long-static.exe
|
||||
/libc-test/src/functional/popen.exe
|
||||
/libc-test/src/regression/statvfs-static.exe
|
||||
/libc-test/src/regression/sem_close-unmap-static.exe
|
||||
/libc-test/src/regression/execle-env-static.exe
|
||||
/libc-test/src/regression/execle-env.exe
|
||||
/libc-test/src/functional/pthread_tsd-static.exe
|
||||
/libc-test/src/functional/tls_init-static.exe
|
||||
|
|
@ -1 +0,0 @@
|
|||
/libc-test/functional/argv-static.exe?
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
/libc-test/src/functional/argv-static.exe
|
||||
/libc-test/src/functional/argv.exe
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
/libc-test/src/common/runtest.exe
|
||||
/libc-test/src/functional/fcntl.exe
|
||||
/libc-test/src/functional/ipc_msg.exe
|
||||
/libc-test/src/functional/ipc_sem.exe
|
||||
/libc-test/src/functional/ipc_shm.exe
|
||||
/libc-test/src/functional/popen.exe
|
||||
/libc-test/src/functional/pthread_cancel-points.exe
|
||||
/libc-test/src/functional/pthread_cond.exe
|
||||
/libc-test/src/functional/pthread_robust.exe
|
||||
/libc-test/src/functional/sem_open.exe
|
||||
/libc-test/src/functional/socket.exe
|
||||
/libc-test/src/functional/spawn.exe
|
||||
/libc-test/src/functional/strptime.exe
|
||||
/libc-test/src/functional/strtod_long.exe
|
||||
/libc-test/src/functional/tls_align.exe
|
||||
/libc-test/src/functional/tls_align_dlopen.exe
|
||||
/libc-test/src/functional/tls_init_dlopen.exe
|
||||
/libc-test/src/functional/utime.exe
|
||||
/libc-test/src/functional/vfork.exe
|
||||
/libc-test/src/math/fmal.exe
|
||||
/libc-test/src/math/powf.exe
|
||||
/libc-test/src/regression/daemon-failure.exe
|
||||
/libc-test/src/regression/execle-env.exe
|
||||
/libc-test/src/regression/fflush-exit.exe
|
||||
/libc-test/src/regression/getpwnam_r-crash.exe
|
||||
/libc-test/src/regression/getpwnam_r-errno.exe
|
||||
/libc-test/src/regression/pthread-robust-detach.exe
|
||||
/libc-test/src/regression/pthread_atfork-errno-clobber.exe
|
||||
/libc-test/src/regression/pthread_exit-dtor.exe
|
||||
/libc-test/src/regression/sem_close-unmap.exe
|
||||
/libc-test/src/regression/sigreturn.exe
|
||||
/libc-test/src/regression/statvfs.exe
|
||||
/libc-test/src/functional/pthread_cancel.exe
|
||||
/libc-test/src/functional/pthread_mutex.exe
|
||||
/libc-test/src/functional/pthread_mutex_pi.exe
|
||||
/libc-test/src/regression/pthread_cond-smasher.exe
|
||||
/libc-test/src/regression/pthread_cond_wait-cancel_ignored.exe
|
||||
/libc-test/src/regression/pthread_condattr_setclock.exe
|
||||
/libc-test/src/regression/pthread_once-deadlock.exe
|
||||
/libc-test/src/regression/raise-race.exe
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
pexpect
|
||||
termcolor
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
#!/bin/bash
|
||||
|
||||
cd .. && make baremetal-test-rv64 ROOTPROC=/libc-test/regression/printf-1e9-oob.exe?
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
import pexpect
|
||||
import sys
|
||||
import re
|
||||
import argparse
|
||||
|
||||
TIMEOUT = 300
|
||||
ZBI_PATH = '../prebuilt/zircon/x64/core-tests.zbi'
|
||||
CMDLINE_BASE = 'LOG=warn:userboot=test/core-standalone-test:userboot.shutdown:core-tests='
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('testcase', nargs=1)
|
||||
args = parser.parse_args()
|
||||
|
||||
child = pexpect.spawn("cargo run -p zcore --release --features 'zircon libos' -- '%s' '%s'" %
|
||||
(ZBI_PATH, CMDLINE_BASE+args.testcase[0]),
|
||||
timeout=TIMEOUT, encoding='utf-8')
|
||||
|
||||
child.logfile = sys.stdout
|
||||
|
||||
index = child.expect(['finished!', 'panicked', pexpect.EOF, pexpect.TIMEOUT])
|
||||
result = ['FINISHED', 'PANICKED', 'EOF', 'TIMEOUT'][index]
|
||||
print(result)
|
||||
|
|
@ -1,85 +0,0 @@
|
|||
import pexpect
|
||||
import sys
|
||||
import re
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
TIMEOUT = 300
|
||||
BASE = 'zircon/'
|
||||
OUTPUT_FILE = BASE + 'test-output-libos.txt'
|
||||
RESULT_FILE = BASE + 'test-result-libos.txt'
|
||||
CHECK_FILE = BASE + 'test-check-passed.txt'
|
||||
TEST_CASE_ALL = BASE + 'testcases-all.txt'
|
||||
TEST_CASE_EXCEPTION = BASE + 'testcases-failed-libos.txt'
|
||||
ZBI_PATH = '../prebuilt/zircon/x64/core-tests.zbi'
|
||||
CMDLINE_BASE = 'LOG=warn:userboot=test/core-standalone-test:userboot.shutdown:core-tests='
|
||||
|
||||
class Tee:
|
||||
def __init__(self, name, mode):
|
||||
self.file = open(name, mode)
|
||||
self.stdout = sys.stdout
|
||||
sys.stdout = self
|
||||
|
||||
def __del__(self):
|
||||
sys.stdout = self.stdout
|
||||
self.file.close()
|
||||
|
||||
def write(self, data):
|
||||
self.file.write(data)
|
||||
self.stdout.write(data)
|
||||
|
||||
def flush(self):
|
||||
self.file.flush()
|
||||
|
||||
if os.path.exists(OUTPUT_FILE): os.remove(OUTPUT_FILE)
|
||||
if os.path.exists(RESULT_FILE): os.remove(RESULT_FILE)
|
||||
|
||||
with open(TEST_CASE_ALL, "r") as tcf:
|
||||
all_case = set([case.strip() for case in tcf.readlines()])
|
||||
with open(TEST_CASE_EXCEPTION, "r") as tcf:
|
||||
exception_case = set([case.strip() for case in tcf.readlines()])
|
||||
check_case = all_case - exception_case
|
||||
|
||||
subprocess.run("cargo build -p zcore --release --features 'zircon libos'",
|
||||
shell=True, check=True)
|
||||
|
||||
for line in check_case:
|
||||
child = pexpect.spawn("../target/release/zcore", [ZBI_PATH, CMDLINE_BASE+line],
|
||||
timeout=TIMEOUT, encoding='utf-8')
|
||||
|
||||
child.logfile = Tee(OUTPUT_FILE, 'a')
|
||||
|
||||
index = child.expect(['finished!', 'panicked', pexpect.EOF, pexpect.TIMEOUT])
|
||||
result = ['FINISHED', 'PANICKED', 'EOF', 'TIMEOUT'][index]
|
||||
# print(result)
|
||||
|
||||
passed = []
|
||||
failed = []
|
||||
passed_case = set()
|
||||
|
||||
# see https://stackoverflow.com/questions/59379174/ignore-ansi-colors-in-pexpect-response
|
||||
ansi_escape = re.compile(r"\x1B[@-_][0-?]*[ -/]*[@-~]")
|
||||
|
||||
|
||||
with open(OUTPUT_FILE, "r") as opf:
|
||||
for line in opf.readlines():
|
||||
line=ansi_escape.sub('',line)
|
||||
if line.startswith('[ OK ]'):
|
||||
passed += line
|
||||
passed_case.add(line[13:].split(' ')[0])
|
||||
elif line.startswith('[ FAILED ]') and line.endswith(')\n'):
|
||||
failed += line
|
||||
|
||||
with open(RESULT_FILE, "a") as rstf:
|
||||
rstf.writelines(passed)
|
||||
rstf.writelines(failed)
|
||||
|
||||
|
||||
not_passed = check_case - passed_case
|
||||
if failed:
|
||||
print('=== Failed cases ===')
|
||||
for case in failed:
|
||||
print(case)
|
||||
exit(1)
|
||||
else:
|
||||
print('All checked case passed!')
|
||||
|
|
@ -1,511 +0,0 @@
|
|||
Bti.Clone
|
||||
Bti.Create
|
||||
Bti.GetInfoTest
|
||||
Bti.Pin
|
||||
Bti.PinContigFlag
|
||||
Bti.PinContiguous
|
||||
Bti.Resize
|
||||
C11MutexTest.InitalizeLocalMutex
|
||||
C11MutexTest.MultiThreadedContention
|
||||
C11MutexTest.StaticInitalizerSameBytesAsAuto
|
||||
C11MutexTest.TimeoutElapsed
|
||||
C11MutexTest.TryMutexMultiThreadedContention
|
||||
C11ThreadTest.CreateAndVerifyThreadHandle
|
||||
C11ThreadTest.DetachedThreadKeepsRunning
|
||||
C11ThreadTest.LongNameSucceeds
|
||||
C11ThreadTest.NullNameThreadShouldSucceed
|
||||
C11ThreadTest.SelfDetachAndFree
|
||||
C11ThreadTest.ThreadLocalErrno
|
||||
ChannelInternalTest.CallFinishWithoutPreviouslyCallingCallReturnsBadState
|
||||
ChannelInternalTest.TransferChannelWithPendingCallInSourceProcess
|
||||
ChannelTest.CallBytesFitIsOk
|
||||
ChannelTest.CallConsumesHandlesOnError
|
||||
ChannelTest.CallConsumesHandlesOnSuccess
|
||||
ChannelTest.CallDeadlineExceededReturnsTimedOut
|
||||
ChannelTest.CallHandleAndBytesFitsIsOk
|
||||
ChannelTest.CallHandlesFitIsOk
|
||||
ChannelTest.CallNotifiedOnPeerClosed
|
||||
ChannelTest.CallNullptrNumBytesIsInvalidArgs
|
||||
ChannelTest.CallNullptrNumHandlesInvalidArgs
|
||||
ChannelTest.CallPendingTransactionsUseDifferentIds
|
||||
ChannelTest.CallResponseBiggerThanRdNumBytesReturnsBufferTooSmall
|
||||
ChannelTest.CallResponseBiggerThanRdNumHandlesReturnsBufferTooSmall
|
||||
ChannelTest.CallWrittenBytesSmallerThanZxTxIdReturnsInvalidArgs
|
||||
ChannelTest.CloseClearsSignalsWriteable
|
||||
ChannelTest.CloseSignalsPeerClosed
|
||||
ChannelTest.CloseSignalsPeerReturnsPeerClosed
|
||||
ChannelTest.ConcurrentReadsConsumeUniqueElements
|
||||
ChannelTest.CreateIsOkAndEndpointsAreRelated
|
||||
ChannelTest.IsWriteableByDefault
|
||||
ChannelTest.NestingIsOk
|
||||
ChannelTest.OnFlightHandlesSignalledWhenPeerIsClosed
|
||||
ChannelTest.ReadAndWriteWithMultipleSizes
|
||||
ChannelTest.ReadEtcHandleInfoValidation
|
||||
ChannelTest.ReadMayDiscardWithNullBufferDiscardHandlesReturnsBufferTooSmall
|
||||
ChannelTest.ReadMayDiscardWithNullBufferDiscardsDataReturnsBufferTooSmall
|
||||
ChannelTest.ReadMayDiscardWithNullBuffersReturnsBufferTooSmall
|
||||
ChannelTest.ReadMayDiscardWithSmallerBufferDiscardHandlesAndDateReturnsBufferTooSmall
|
||||
ChannelTest.ReadMayDiscardWithZeroSizeBuffersDiscardHandlesAndDataReturnsBufferTooSmall
|
||||
ChannelTest.ReadRemainingMessagesWhenPeerIsClosed
|
||||
ChannelTest.ReadWhenEmptyAndClosedReturnsPeerClosed
|
||||
ChannelTest.ReadWhenEmptyReturnsShouldWait
|
||||
ChannelTest.WaitManyIsSignaledForBothWrites
|
||||
ChannelTest.WaitManyIsSignaledOnAnyElementWrite
|
||||
ChannelTest.WriteConsumesAllHandles
|
||||
ChannelTest.WriteNonTransferableHandleReturnsAccessDeniedAndClosesHandle
|
||||
ChannelTest.WriteRepeatedHandlesReturnsBadHandlesAndClosesHandle
|
||||
ChannelTest.WriteSelfHandleReturnsNotSupported
|
||||
ChannelTest.WriteToEndpointCausesOtherToBecomeReadable
|
||||
ChannelWriteEtcTest.ByteCountIsMaxPlusOneShouldFail
|
||||
ChannelWriteEtcTest.ByteCountIsMaxShouldSucceed
|
||||
ChannelWriteEtcTest.ChannelHandleInTransferredHandlesShouldFail
|
||||
ChannelWriteEtcTest.ChannelHandleNotValidShouldFail
|
||||
ChannelWriteEtcTest.ChannelHandleWithoutWriteRightShouldFail
|
||||
ChannelWriteEtcTest.DuplicateHandlesInTransferredHandlesShouldSucceed
|
||||
ChannelWriteEtcTest.FailureDoesNotResultInReceivedPacket
|
||||
ChannelWriteEtcTest.HandleArgNotAChannelHandleShouldFail
|
||||
ChannelWriteEtcTest.HandleCountAndDataCountBothZeroShouldSucceed
|
||||
ChannelWriteEtcTest.HandleCountBoundaryChecks
|
||||
ChannelWriteEtcTest.HandleDoesNotMatchTypeShouldFail
|
||||
ChannelWriteEtcTest.HandleWithoutDuplicateRightsMoveOpSucceedsDuplicateOpFails
|
||||
ChannelWriteEtcTest.HandleWithoutTransferRightShouldFail
|
||||
ChannelWriteEtcTest.ImproperlyInitalizedResultsArgReportedBackAsOriginallyInitalized
|
||||
ChannelWriteEtcTest.InvalidHandleInTransferredHandlesShouldFail
|
||||
ChannelWriteEtcTest.InvalidOpArgShouldFail
|
||||
ChannelWriteEtcTest.MaximumNumberHandlesWithZeroCountArrayArgShouldSucceed
|
||||
ChannelWriteEtcTest.MultipleHandlesSomeInvalidResultsReportedCorrectly
|
||||
ChannelWriteEtcTest.NullptrArgWhenSizeNonZeroShouldFail
|
||||
ChannelWriteEtcTest.OppositeChannelEndClosedShouldFail
|
||||
ChannelWriteEtcTest.OptionsArgNonZeroShouldFail
|
||||
ChannelWriteEtcTest.RemoveAllHandleRightsShouldSucceed
|
||||
ChannelWriteEtcTest.RemovingSomeHandleRightsShouldSucceed
|
||||
ChannelWriteEtcTest.RepeatedHandlesWithOpMoveHandlesShouldFail
|
||||
ChannelWriteEtcTest.SameHandleRightsBitsShouldSucceed
|
||||
ChannelWriteEtcTest.SameHandleRightsFlagShouldSucceed
|
||||
ChannelWriteEtcTest.SentHandleReferrsToSameObject
|
||||
ClockTest.ClockMonotonic
|
||||
ClockTest.DeadlineAfter
|
||||
ConditionalVariableTest.BroadcastSignalThreadWait
|
||||
ConditionalVariableTest.ConditionalVariablesTimeout
|
||||
ConditionalVariableTest.SignalThreadWait
|
||||
CppThreadTest.CreateAndVerifyThreadHandle
|
||||
DebugLogTest.WriteRead
|
||||
DefaultExceptionHandlerTest.UnhandledHardwareException
|
||||
EventPairTest.CheckNoFlagsSupported
|
||||
EventPairTest.HandleRightsAreCorrect
|
||||
EventPairTest.HandlesNotInvalid
|
||||
EventPairTest.KoidsAreCorrect
|
||||
EventPairTest.SignalEventPairAndClearVerifySignals
|
||||
EventPairTest.SignalingClosedPeerReturnsPeerClosed
|
||||
EventPairTest.SignalPeerAndVerifyRecived
|
||||
EventPairTest.SignalPeerThenCloseAndVerifySignalReceived
|
||||
ExecutableTlsTest.AlignmentInitializerInThread
|
||||
ExecutableTlsTest.AlignmentInitializierInMain
|
||||
ExecutableTlsTest.ArrayInitializerInMain
|
||||
ExecutableTlsTest.ArrayInitializerInThread
|
||||
ExecutableTlsTest.ArrayInitializerSpamThread
|
||||
ExecutableTlsTest.ArrayInitializierSpamMain
|
||||
ExecutableTlsTest.BasicInitalizersInMain
|
||||
ExecutableTlsTest.BasicInitalizersInThread
|
||||
ExecutableTlsTest.BigArrayInitializerInMain
|
||||
ExecutableTlsTest.BigArrayInitializerInThread
|
||||
ExecutableTlsTest.StructureInitalizierInMain
|
||||
ExecutableTlsTest.StructureInitializerInThread
|
||||
FifoTest.DequeueSignalsWriteable
|
||||
FifoTest.EmptyQueueReturnsErrShouldWait
|
||||
FifoTest.EndpointCloseSignalsPeerClosed
|
||||
FifoTest.EndpointsAreRelated
|
||||
FifoTest.FifoOrderIsPreserved
|
||||
FifoTest.IndividualReadsPreserveOrder
|
||||
FifoTest.InvalidParametersReturnOutOfRange
|
||||
FifoTest.PartialWriteQueuesElementsThatFit
|
||||
FifoTest.ReadAndWriteValidatesSizeAndElementCount
|
||||
FPUTest.LongComputeLoop
|
||||
FutexTest.EventSignaling
|
||||
FutexTest.MisalignedFutextAddr
|
||||
FutexTest.Requeue
|
||||
FutexTest.RequeueSameAddr
|
||||
FutexTest.RequeueUnqueuedOnTimeout
|
||||
FutexTest.RequeueValueMismatch
|
||||
FutexTest.ThreadSuspended
|
||||
FutexTest.WaitBadAddress
|
||||
FutexTest.WaitTimeout
|
||||
FutexTest.WaitTimeoutElapsed
|
||||
FutexTest.WaitValueMismatch
|
||||
FutexTest.Wakeup
|
||||
FutexTest.WakeupAddress
|
||||
FutexTest.WakeupLimit
|
||||
HandleCloseTest.Many
|
||||
HandleCloseTest.ManyInvalidHandlesShouldNotFail
|
||||
HandleDup.Duplicate
|
||||
HandleDup.Replace
|
||||
HandleDup.ReplaceFailureBothInvalid
|
||||
HandleDup.ReplaceSuccessOrigInvalid
|
||||
HandleInfoTest.DupAndInfoRights
|
||||
HandleInfoTest.DuplicateRights
|
||||
HandleInfoTest.RelatedKoid
|
||||
HandleInfoTest.ReplaceRights
|
||||
HandleTransferTest.CancelsWait
|
||||
HandleTransferTest.OverChannelThenRead
|
||||
HandleWaitTest.HandleWaitMultipleThreads
|
||||
HandleWaitTest.HandleWaitTest
|
||||
InterruptTest.BindPort
|
||||
InterruptTest.NonBindablePort
|
||||
InterruptTest.NullOutputTimestamp
|
||||
InterruptTest.UnableToBindVirtualInterruptToVcpu
|
||||
InterruptTest.UnBindPort
|
||||
InterruptTest.VirtualInterrupts
|
||||
JobGetInfoTest.InfoHandleBasicBadActualgIsInvalidArg
|
||||
JobGetInfoTest.InfoHandleBasicBadAvailIsInvalidArg
|
||||
JobGetInfoTest.InfoHandleBasicInvalidBufferPointerFails
|
||||
JobGetInfoTest.InfoHandleBasicInvalidHandleFails
|
||||
JobGetInfoTest.InfoHandleBasicNullActualAndAvailSucceeds
|
||||
JobGetInfoTest.InfoHandleBasicNullActualSucceeds
|
||||
JobGetInfoTest.InfoHandleBasicNullAvailSucceeds
|
||||
JobGetInfoTest.InfoHandleBasicOnSelfSuceeds
|
||||
JobGetInfoTest.InfoJobChildJobsGetChild
|
||||
JobGetInfoTest.InfoJobChildrenInvalidHandleFails
|
||||
JobGetInfoTest.InfoJobChildrenJobHandleIsBadHandle
|
||||
JobGetInfoTest.InfoJobChildrenOnSelfSuceeds
|
||||
JobGetInfoTest.InfoJobChildrenRequiresEnumerateRights
|
||||
JobGetInfoTest.InfoJobChildrenSmallBufferIsOk
|
||||
JobGetInfoTest.InfoJobChildrenThreadHandleIsBadHandle
|
||||
JobGetInfoTest.InfoJobChildrenZeroSizedBufferIsOk
|
||||
JobGetInfoTest.InfoJobProcessesGetChild
|
||||
JobGetInfoTest.InfoJobProcessesInvalidHandleFails
|
||||
JobGetInfoTest.InfoJobProcessesOnSelfSuceeds
|
||||
JobGetInfoTest.InfoJobProcessesProcessbHandleIsBadHandle
|
||||
JobGetInfoTest.InfoJobProcessesRequiresEnumerateRights
|
||||
JobGetInfoTest.InfoJobProcessesSmallBufferIsOk
|
||||
JobGetInfoTest.InfoJobProcessesThreadHandleIsBadHandle
|
||||
JobGetInfoTest.InfoJobProcessesZeroSizedBufferIsOk
|
||||
MemoryMappingTest.MmapFlagsTest
|
||||
MemoryMappingTest.MmapLenTest
|
||||
MemoryMappingTest.MmapOffsetTest
|
||||
MemoryMappingTest.MmapZerofilledTest
|
||||
MsiTest.AllocateSyscall
|
||||
MsiTest.CreateSyscallArgs
|
||||
MsiTest.Msi
|
||||
ObjectChildTest.InvalidHandleReturnsBadHandle
|
||||
ObjectGetInfoTest.ClosedValidHandleFails
|
||||
ObjectGetInfoTest.HandleCountCorrectness
|
||||
ObjectGetInfoTest.InvalidHandleFails
|
||||
ObjectGetInfoTest.OpenValidHandleSuceeds
|
||||
ObjectWaitManyTest.InvalidHandle
|
||||
ObjectWaitManyTest.TooManyObjects
|
||||
ObjectWaitManyTest.TransientSignalsNotReturned
|
||||
ObjectWaitManyTest.WaitForEventsSignaled
|
||||
ObjectWaitManyTest.WaitForEventsThenSignal
|
||||
ObjectWaitOneTest.EmptySignalSet
|
||||
ObjectWaitOneTest.TransientSignalsNotReturned
|
||||
ObjectWaitOneTest.WaitForEventSignaled
|
||||
ObjectWaitOneTest.WaitForEventThenSignal
|
||||
ObjectWaitOneTest.WaitForEventTimeout
|
||||
ObjectWaitOneTest.WaitForEventTimeoutPreSignalClear
|
||||
PortStressTest.CloseWaitRace
|
||||
PortTest.AsyncWaitChannel
|
||||
PortTest.AsyncWaitChannelTimedOut
|
||||
PortTest.AsyncWaitCloseOrder
|
||||
PortTest.AsyncWaitEventManyAllProcessed
|
||||
PortTest.AsyncWaitEventRepeat
|
||||
PortTest.ChannelAsyncWaitOnExistingStateIsNotified
|
||||
PortTest.CloseQueueRace
|
||||
PortTest.PortTimeout
|
||||
PortTest.QueueAndClose
|
||||
PortTest.QueueNullPtrReturnsInvalidArgs
|
||||
PortTest.QueueTooMany
|
||||
PortTest.QueueWaitVerifyUserPacket
|
||||
PortTest.ThreadEvents
|
||||
ProcessDebugTest.ReadMemoryAtOffsetIsOk
|
||||
ProcessDebugTest.WriteMemoryAtOffsetIsOk
|
||||
ProcessDebugUtilsTest.XorShiftIsOk
|
||||
ProcessGetInfoTest.InfoHandleBasicBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoHandleBasicBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoHandleBasicInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoHandleBasicInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoHandleBasicNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoHandleBasicNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoHandleBasicNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoHandleBasicOnSelfSuceeds
|
||||
ProcessGetInfoTest.InfoProcessBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessJobHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoProcessMapsJobHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoProcessMapsThreadHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoProcessNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoProcessNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessOnSelfSuceeds
|
||||
ProcessGetInfoTest.InfoProcessThreadHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoProcessThreadsInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessThreadsSelfSuceeds
|
||||
ProcessGetInfoTest.InfoProcessThreadsZeroSizedBufferSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosOnSelfFails
|
||||
ProcessTest.CreateAndKillJobRaceStress
|
||||
ProcessTest.EmptyNameSucceeds
|
||||
ProcessTest.KillChannelHandleCycle
|
||||
ProcessTest.KillProcessViaThreadKill
|
||||
ProcessTest.LongNameSucceeds
|
||||
ProcessTest.MiniProcessSanity
|
||||
ProcessTest.ProcessNotKilledViaProcessClose
|
||||
ProcessTest.ProcessNotKilledViaThreadClose
|
||||
ProcessTest.ProcessStartFail
|
||||
ProcessTest.ProcessStartNoHandle
|
||||
ProcessTest.ProcessStartWriteThreadState
|
||||
ProcessTest.SuspendSelf
|
||||
ProgressiveCloneDiscardTests.ProgressiveCloneClose
|
||||
ProgressiveCloneDiscardTests.ProgressiveCloneTruncate
|
||||
PThreadBarrierTest.InitWithNoThreadsReturnsInval
|
||||
PThreadBarrierTest.SingleThreadWinsBarrierObject
|
||||
PthreadTls.PthreadTls
|
||||
SocketTest.BytesOutstanding
|
||||
SocketTest.Datagram
|
||||
SocketTest.DatagramNoShortWrite
|
||||
SocketTest.DatagramPeek
|
||||
SocketTest.DatagramPeekEmpty
|
||||
SocketTest.EmptySocketShouldWait
|
||||
SocketTest.EndpointsAreRelated
|
||||
SocketTest.PeekingIntoEmpty
|
||||
SocketTest.PeekingLeavesData
|
||||
SocketTest.PeerClosedError
|
||||
SocketTest.PeerClosedSetProperty
|
||||
SocketTest.ReadIntoNullBuffer
|
||||
SocketTest.SetThreshholdsAndCheckSignals
|
||||
SocketTest.SetThreshholdsProp
|
||||
SocketTest.ShortWrite
|
||||
SocketTest.ShutdownRead
|
||||
SocketTest.ShutdownReadBytesOutstanding
|
||||
SocketTest.ShutdownWrite
|
||||
SocketTest.ShutdownWriteBytesOutstanding
|
||||
SocketTest.SignalClosedPeer
|
||||
SocketTest.Signals
|
||||
SocketTest.WriteFromNullBuffer
|
||||
SocketTest.WriteReadDataVerify
|
||||
SocketTest.ZeroSize
|
||||
StackTest.MainThreadStack
|
||||
StackTest.ThreadStack
|
||||
StreamTestCase.Append
|
||||
StreamTestCase.Create
|
||||
StreamTestCase.ExtendFillsWithZeros
|
||||
StreamTestCase.ReadV
|
||||
StreamTestCase.ReadVAt
|
||||
StreamTestCase.ReadVectorAlias
|
||||
StreamTestCase.Seek
|
||||
StreamTestCase.WriteExtendsContentSize
|
||||
StreamTestCase.WriteExtendsVMOSize
|
||||
StreamTestCase.WriteV
|
||||
StreamTestCase.WriteVAt
|
||||
SyncCompletionTest.Initializer
|
||||
SyncCompletionTest.MultiWait
|
||||
SyncCompletionTest.PresignalMultiWait
|
||||
SyncCompletionTest.PresignalSingleWait
|
||||
SyncCompletionTest.ResetCycleMultiWait
|
||||
SyncCompletionTest.ResetCycleSingleWait
|
||||
SyncCompletionTest.SignalRequeue
|
||||
SyncCompletionTest.SingleWait
|
||||
SyncCompletionTest.SpuriousWakeupHandled
|
||||
SyncCompletionTest.TimeoutMultiWait
|
||||
SyncCompletionTest.TimeoutSingleWait
|
||||
SyncCondition.ConditionTest
|
||||
SyncCondition.TimeoutTest
|
||||
SyncMutex.Mutexes
|
||||
SyncMutex.TimeoutElapsed
|
||||
SyncMutex.TryMutexes
|
||||
TaskGetInfoTest.InfoStatsSmokeTest
|
||||
TaskGetInfoTest.InfoStatsUnstartedSuceeds
|
||||
TaskGetInfoTest.InfoTaskRuntimeWrongType
|
||||
TaskGetInfoTest.InfoTaskStatsBadActualgIsInvalidArg
|
||||
TaskGetInfoTest.InfoTaskStatsBadAvailIsInvalidArg
|
||||
TaskGetInfoTest.InfoTaskStatsInvalidBufferPointerFails
|
||||
TaskGetInfoTest.InfoTaskStatsInvalidHandleFails
|
||||
TaskGetInfoTest.InfoTaskStatsJobHandleIsBadHandle
|
||||
TaskGetInfoTest.InfoTaskStatsNullActualAndAvailSucceeds
|
||||
TaskGetInfoTest.InfoTaskStatsNullActualSucceeds
|
||||
TaskGetInfoTest.InfoTaskStatsNullAvailSucceeds
|
||||
TaskGetInfoTest.InfoTaskStatsThreadHandleIsBadHandle
|
||||
Thread.SuspendAfterDeath
|
||||
ThreadGetInfoTest.InfoHandleBasicBadActualgIsInvalidArg
|
||||
ThreadGetInfoTest.InfoHandleBasicBadAvailIsInvalidArg
|
||||
ThreadGetInfoTest.InfoHandleBasicInvalidBufferPointerFails
|
||||
ThreadGetInfoTest.InfoHandleBasicInvalidHandleFails
|
||||
ThreadGetInfoTest.InfoHandleBasicNullActualAndAvailSucceeds
|
||||
ThreadGetInfoTest.InfoHandleBasicNullActualSucceeds
|
||||
ThreadGetInfoTest.InfoHandleBasicNullAvailSucceeds
|
||||
ThreadGetInfoTest.InfoHandleBasicOnSelfSuceeds
|
||||
ThreadGetInfoTest.InfoHandleCountBadActualgIsInvalidArg
|
||||
ThreadGetInfoTest.InfoHandleCountBadAvailIsInvalidArg
|
||||
ThreadGetInfoTest.InfoHandleCountInvalidBufferPointerFails
|
||||
ThreadGetInfoTest.InfoHandleCountInvalidHandleFails
|
||||
ThreadGetInfoTest.InfoHandleCountNullActualAndAvailSucceeds
|
||||
ThreadGetInfoTest.InfoHandleCountNullActualSucceeds
|
||||
ThreadGetInfoTest.InfoHandleCountNullAvailSucceeds
|
||||
ThreadGetInfoTest.InfoHandleCountOnSelfSuceeds
|
||||
ThreadGetInfoTest.InfoThreadBadActualgIsInvalidArg
|
||||
ThreadGetInfoTest.InfoThreadBadAvailIsInvalidArg
|
||||
ThreadGetInfoTest.InfoThreadExceptionReportInvalidHandleFails
|
||||
ThreadGetInfoTest.InfoThreadInvalidBufferPointerFails
|
||||
ThreadGetInfoTest.InfoThreadInvalidHandleFails
|
||||
ThreadGetInfoTest.InfoThreadJobHandleIsBadHandle
|
||||
ThreadGetInfoTest.InfoThreadNullActualAndAvailSucceeds
|
||||
ThreadGetInfoTest.InfoThreadNullActualSucceeds
|
||||
ThreadGetInfoTest.InfoThreadNullAvailSucceeds
|
||||
ThreadGetInfoTest.InfoThreadOnSelfSuceeds
|
||||
ThreadGetInfoTest.InfoThreadProcessHandleIsBadHandle
|
||||
ThreadGetInfoTest.InfoThreadStatsJobHandleIsBadHandle
|
||||
ThreadGetInfoTest.InfoThreadStatsProcessHandleIsBadHandle
|
||||
Threads.Basics
|
||||
Threads.Detach
|
||||
Threads.EmptyNameSucceeds
|
||||
Threads.InfoTaskStatsFails
|
||||
Threads.InvalidRights
|
||||
Threads.KillSuspendedThread
|
||||
Threads.LongNameSucceeds
|
||||
Threads.NonstartedThread
|
||||
Threads.ResumeSuspended
|
||||
Threads.StartSuspendedAndResumedThread
|
||||
Threads.SuspendChannelCall
|
||||
Threads.SuspendMultiple
|
||||
Threads.SuspendPortCall
|
||||
Threads.SuspendSelf
|
||||
Threads.SuspendSleeping
|
||||
Threads.SuspendStopsThread
|
||||
Threads.ThreadLocalRegisterState
|
||||
Threads.ThreadStartOnInitialThread
|
||||
Threads.ThreadStartWithZeroInstructionPointer
|
||||
Threads.WritingArmFlagsRegister
|
||||
Threads.WritingGeneralRegisterState
|
||||
TicksTest.ElapsedTimeUsingTicks
|
||||
Vmar.AllocateOobTest
|
||||
Vmar.AllocateUnsatisfiableTest
|
||||
Vmar.AllowFaultsTest
|
||||
Vmar.BasicAllocateTest
|
||||
Vmar.ConcurrentUnmapReadMemory
|
||||
Vmar.DestroyedVmarTest
|
||||
Vmar.DestroyTest
|
||||
Vmar.MapInCompactTest
|
||||
Vmar.ObjectInfoTest
|
||||
Vmar.PartialUnmapAndRead
|
||||
Vmar.PartialUnmapAndWrite
|
||||
Vmar.PartialUnmapWithVmarOffset
|
||||
Vmar.ProtectMultipleTest
|
||||
Vmar.ProtectSplitTest
|
||||
Vmar.ProtectTest
|
||||
Vmar.RightsDropTest
|
||||
Vmar.UnalignedLenMapTest
|
||||
Vmar.UnalignedLenTest
|
||||
Vmar.UnmapBaseNotMappedTest
|
||||
Vmar.UnmapMultipleTest
|
||||
Vmar.UnmapSplitTest
|
||||
Vmar.VmarMapRangeOffsetTest
|
||||
Vmar.VmarMapRangeOffsetTest
|
||||
VmarGetInfoTest.InfoHandleBasicBadActualgIsInvalidArg
|
||||
VmarGetInfoTest.InfoHandleBasicBadAvailIsInvalidArg
|
||||
VmarGetInfoTest.InfoHandleBasicInvalidBufferPointerFails
|
||||
VmarGetInfoTest.InfoHandleBasicInvalidHandleFails
|
||||
VmarGetInfoTest.InfoHandleBasicNullActualAndAvailSucceeds
|
||||
VmarGetInfoTest.InfoHandleBasicNullActualSucceeds
|
||||
VmarGetInfoTest.InfoHandleBasicNullAvailSucceeds
|
||||
VmarGetInfoTest.InfoHandleBasicOnSelfSuceeds
|
||||
VmarGetInfoTest.InfoVmarBadActualgIsInvalidArg
|
||||
VmarGetInfoTest.InfoVmarBadAvailIsInvalidArg
|
||||
VmarGetInfoTest.InfoVmarInvalidBufferPointerFails
|
||||
VmarGetInfoTest.InfoVmarInvalidHandleFails
|
||||
VmarGetInfoTest.InfoVmarJobHandleIsBadHandle
|
||||
VmarGetInfoTest.InfoVmarNullActualAndAvailSucceeds
|
||||
VmarGetInfoTest.InfoVmarNullActualSucceeds
|
||||
VmarGetInfoTest.InfoVmarNullAvailSucceeds
|
||||
VmarGetInfoTest.InfoVmarOnSelfFails
|
||||
VmarGetInfoTest.InfoVmarProcessHandleIsBadHandle
|
||||
VmarGetInfoTest.InfoVmarThreadHandleIsBadHandle
|
||||
VmoClone2TestCase.Children
|
||||
VmoClone2TestCase.CloneVmarWrite
|
||||
VmoClone2TestCase.CloneVmoWrite
|
||||
VmoClone2TestCase.CloseClone
|
||||
VmoClone2TestCase.CloseOriginal
|
||||
VmoClone2TestCase.DisjointCloneProgressive
|
||||
VmoClone2TestCase.DisjointCloneTest2
|
||||
VmoClone2TestCase.ForbidContiguousVmo
|
||||
VmoClone2TestCase.Info
|
||||
VmoClone2TestCase.ManyChildren
|
||||
VmoClone2TestCase.ManyChildrenRevClose
|
||||
VmoClone2TestCase.ManyCloneMapping
|
||||
VmoClone2TestCase.ManyCloneMappingOffset
|
||||
VmoClone2TestCase.ManyCloneOffset
|
||||
VmoClone2TestCase.ObjMemAccounting
|
||||
VmoClone2TestCase.Offset
|
||||
VmoClone2TestCase.OffsetProgressiveWrite
|
||||
VmoClone2TestCase.OffsetTest2
|
||||
VmoClone2TestCase.OutOfBounds
|
||||
VmoClone2TestCase.Overflow
|
||||
VmoClone2TestCase.ParentStartLimitRegression
|
||||
VmoClone2TestCase.ParentVmarWrite
|
||||
VmoClone2TestCase.ParentVmoWrite
|
||||
VmoClone2TestCase.PinBeforeCreateFailure
|
||||
VmoClone2TestCase.Read
|
||||
VmoClone2TestCase.ResizeDisjointChild
|
||||
VmoClone2TestCase.ResizeGrow
|
||||
VmoClone2TestCase.ResizeMultipleProgressive
|
||||
VmoClone2TestCase.ResizeOffsetChild
|
||||
VmoClone2TestCase.ResizeOverSiblingRange
|
||||
VmoClone2TestCase.SmallClone
|
||||
VmoClone2TestCase.SmallCloneChild
|
||||
VmoClone2TestCase.SmallClones
|
||||
VmoClone2TestCase.SplitPageClosure
|
||||
VmoClone2TestCase.Uncached
|
||||
VmoClone2TestCase.ZeroPageWrite
|
||||
VmoCloneDisjointClonesTests.DisjointCloneEarlyClose
|
||||
VmoCloneDisjointClonesTests.DisjointCloneLateClose
|
||||
VmoCloneResizeTests.ResizeChild
|
||||
VmoCloneResizeTests.ResizeOriginal
|
||||
VmoCloneTestCase.Decommit
|
||||
VmoCloneTestCase.NameProperty
|
||||
VmoCloneTestCase.NoResize
|
||||
VmoCloneTestCase.Rights
|
||||
VmoCloneTestCase.SizeAlign
|
||||
VmoSignalTestCase.ChildSignalClone
|
||||
VmoSignalTestCase.ChildSignalMap
|
||||
VmoSignalTestCase.SignalSanity
|
||||
VmoSliceTestCase.ChildSliceOfContiguousParentIsContiguous
|
||||
VmoSliceTestCase.CommitChild
|
||||
VmoSliceTestCase.CowPageSourceThroughSlices
|
||||
VmoSliceTestCase.DecommitChild
|
||||
VmoSliceTestCase.DecommitParent
|
||||
VmoSliceTestCase.Nested
|
||||
VmoSliceTestCase.NonResizable
|
||||
VmoSliceTestCase.NonSlice
|
||||
VmoSliceTestCase.NotCoWType
|
||||
VmoSliceTestCase.RoundUpSize
|
||||
VmoSliceTestCase.RoundUpSizePhysical
|
||||
VmoSliceTestCase.WriteThrough
|
||||
VmoSliceTestCase.ZeroChildren
|
||||
VmoSliceTestCase.ZeroChildrenGrandchildClosedLast
|
||||
VmoSliceTestCase.ZeroSized
|
||||
VmoTestCase.ContentSize
|
||||
VmoTestCase.Create
|
||||
VmoTestCase.Map
|
||||
VmoTestCase.NoResize
|
||||
VmoTestCase.ReadWrite
|
||||
VmoTestCase.ReadWriteBadLen
|
||||
VmoTestCase.ReadWriteRange
|
||||
VmoTestCase.Resize
|
||||
VmoTestCase.ResizeAlign
|
||||
VmoTestCase.SizeAlign
|
||||
VmoTestCase.UncachedContiguous
|
||||
VmoZeroTestCase.AllocateAfterMerge
|
||||
VmoZeroTestCase.AllocateAfterMergeHiddenChild
|
||||
VmoZeroTestCase.ChildZeroThenWrite
|
||||
VmoZeroTestCase.ContentInParentAndChild
|
||||
VmoZeroTestCase.Contiguous
|
||||
VmoZeroTestCase.DecommitMiddle
|
||||
VmoZeroTestCase.EmptyCowChildren
|
||||
VmoZeroTestCase.MergeZeroChildren
|
||||
VmoZeroTestCase.Nested
|
||||
VmoZeroTestCase.ResizeOverHiddenMarkers
|
||||
VmoZeroTestCase.UnalignedCommitted
|
||||
VmoZeroTestCase.UnalignedSubPage
|
||||
VmoZeroTestCase.UnalignedUnCommitted
|
||||
VmoZeroTestCase.WriteCowParent
|
||||
VmoZeroTestcase.ZeroFreesAndAllocates
|
||||
VmoZeroTestCase.ZeroLengths
|
||||
|
|
@ -1,825 +0,0 @@
|
|||
Bti.Create
|
||||
Bti.Pin
|
||||
Bti.PinContiguous
|
||||
Bti.PinContigFlag
|
||||
Bti.Resize
|
||||
Bti.Clone
|
||||
Bti.GetInfoTest
|
||||
Bti.NoDelayedUnpin
|
||||
Bti.DecommitRace
|
||||
BadAccessTest.InvalidMappedAddressFails
|
||||
BadAccessTest.KernelMappedAddressChannelWriteFails
|
||||
BadAccessTest.NormalMappedAddressChannelWriteSucceeds
|
||||
BadAccessTest.SyscallNumTest
|
||||
BadAccessTest.PciCfgPioRwChannelReadHandle
|
||||
BadAccessTest.ChannelReadHandle
|
||||
ConditionalVariableTest.BroadcastSignalThreadWait
|
||||
ConditionalVariableTest.SignalThreadWait
|
||||
ConditionalVariableTest.ConditionalVariablesTimeout
|
||||
C11MutexTest.MultiThreadedContention
|
||||
C11MutexTest.TryMutexMultiThreadedContention
|
||||
C11MutexTest.InitalizeLocalMutex
|
||||
C11MutexTest.StaticInitalizerSameBytesAsAuto
|
||||
C11MutexTest.TimeoutElapsed
|
||||
C11ThreadTest.ThreadLocalErrno
|
||||
C11ThreadTest.NullNameThreadShouldSucceed
|
||||
C11ThreadTest.CreateAndVerifyThreadHandle
|
||||
C11ThreadTest.DetachedThreadKeepsRunning
|
||||
C11ThreadTest.LongNameSucceeds
|
||||
C11ThreadTest.SelfDetachAndFree
|
||||
ChannelInternalTest.CallFinishWithoutPreviouslyCallingCallReturnsBadState
|
||||
ChannelInternalTest.TransferChannelWithPendingCallInSourceProcess
|
||||
ChannelTest.CreateIsOkAndEndpointsAreRelated
|
||||
ChannelTest.IsWriteableByDefault
|
||||
ChannelTest.WriteToEndpointCausesOtherToBecomeReadable
|
||||
ChannelTest.WriteConsumesAllHandles
|
||||
ChannelTest.WaitManyIsSignaledOnAnyElementWrite
|
||||
ChannelTest.WaitManyIsSignaledForBothWrites
|
||||
ChannelTest.ReadWhenEmptyReturnsShouldWait
|
||||
ChannelTest.ReadWhenEmptyAndClosedReturnsPeerClosed
|
||||
ChannelTest.ReadRemainingMessagesWhenPeerIsClosed
|
||||
ChannelTest.CloseSignalsPeerClosed
|
||||
ChannelTest.CloseClearsSignalsWriteable
|
||||
ChannelTest.CloseSignalsPeerReturnsPeerClosed
|
||||
ChannelTest.OnFlightHandlesSignalledWhenPeerIsClosed
|
||||
ChannelTest.WriteNonTransferableHandleReturnsAccessDeniedAndClosesHandle
|
||||
ChannelTest.WriteRepeatedHandlesReturnsBadHandlesAndClosesHandle
|
||||
ChannelTest.ConcurrentReadsConsumeUniqueElements
|
||||
ChannelTest.ReadMayDiscardWithNullBuffersReturnsBufferTooSmall
|
||||
ChannelTest.ReadMayDiscardWithNullBufferDiscardsDataReturnsBufferTooSmall
|
||||
ChannelTest.ReadMayDiscardWithNullBufferDiscardHandlesReturnsBufferTooSmall
|
||||
ChannelTest.ReadMayDiscardWithZeroSizeBuffersDiscardHandlesAndDataReturnsBufferTooSmall
|
||||
ChannelTest.ReadMayDiscardWithSmallerBufferDiscardHandlesAndDateReturnsBufferTooSmall
|
||||
ChannelTest.CallWrittenBytesSmallerThanZxTxIdReturnsInvalidArgs
|
||||
ChannelTest.CallResponseBiggerThanRdNumBytesReturnsBufferTooSmall
|
||||
ChannelTest.CallResponseBiggerThanRdNumHandlesReturnsBufferTooSmall
|
||||
ChannelTest.CallBytesFitIsOk
|
||||
ChannelTest.CallHandlesFitIsOk
|
||||
ChannelTest.CallHandleAndBytesFitsIsOk
|
||||
ChannelTest.CallNullptrNumBytesIsInvalidArgs
|
||||
ChannelTest.CallNullptrNumHandlesInvalidArgs
|
||||
ChannelTest.CallPendingTransactionsUseDifferentIds
|
||||
ChannelTest.CallDeadlineExceededReturnsTimedOut
|
||||
ChannelTest.CallConsumesHandlesOnSuccess
|
||||
ChannelTest.CallConsumesHandlesOnError
|
||||
ChannelTest.CallNotifiedOnPeerClosed
|
||||
ChannelTest.NestingIsOk
|
||||
ChannelTest.WriteSelfHandleReturnsNotSupported
|
||||
ChannelTest.ReadEtcHandleInfoValidation
|
||||
ChannelTest.ReadAndWriteWithMultipleSizes
|
||||
ChannelWriteEtcTest.MultipleHandlesSomeInvalidResultsReportedCorrectly
|
||||
ChannelWriteEtcTest.ImproperlyInitalizedResultsArgReportedBackAsOriginallyInitalized
|
||||
ChannelWriteEtcTest.FailureDoesNotResultInReceivedPacket
|
||||
ChannelWriteEtcTest.SentHandleReferrsToSameObject
|
||||
ChannelWriteEtcTest.InvalidOpArgShouldFail
|
||||
ChannelWriteEtcTest.HandleArgNotAChannelHandleShouldFail
|
||||
ChannelWriteEtcTest.ChannelHandleNotValidShouldFail
|
||||
ChannelWriteEtcTest.ChannelHandleWithoutWriteRightShouldFail
|
||||
ChannelWriteEtcTest.HandleWithoutTransferRightShouldFail
|
||||
ChannelWriteEtcTest.InvalidHandleInTransferredHandlesShouldFail
|
||||
ChannelWriteEtcTest.RepeatedHandlesWithOpMoveHandlesShouldFail
|
||||
ChannelWriteEtcTest.DuplicateHandlesInTransferredHandlesShouldSucceed
|
||||
ChannelWriteEtcTest.HandleDoesNotMatchTypeShouldFail
|
||||
ChannelWriteEtcTest.OptionsArgNonZeroShouldFail
|
||||
ChannelWriteEtcTest.ChannelHandleInTransferredHandlesShouldFail
|
||||
ChannelWriteEtcTest.OppositeChannelEndClosedShouldFail
|
||||
ChannelWriteEtcTest.HandleCountBoundaryChecks
|
||||
ChannelWriteEtcTest.HandleCountAndDataCountBothZeroShouldSucceed
|
||||
ChannelWriteEtcTest.MaximumNumberHandlesWithZeroCountArrayArgShouldSucceed
|
||||
ChannelWriteEtcTest.ByteCountIsMaxShouldSucceed
|
||||
ChannelWriteEtcTest.ByteCountIsMaxPlusOneShouldFail
|
||||
ChannelWriteEtcTest.NullptrArgWhenSizeNonZeroShouldFail
|
||||
ChannelWriteEtcTest.RemoveAllHandleRightsShouldSucceed
|
||||
ChannelWriteEtcTest.RemovingSomeHandleRightsShouldSucceed
|
||||
ChannelWriteEtcTest.SameHandleRightsBitsShouldSucceed
|
||||
ChannelWriteEtcTest.SameHandleRightsFlagShouldSucceed
|
||||
ChannelWriteEtcTest.HandleWithoutDuplicateRightsMoveOpSucceedsDuplicateOpFails
|
||||
CppThreadTest.CreateAndVerifyThreadHandle
|
||||
CpuMaskProfile.EmptyMaskIsValid
|
||||
CpuMaskProfile.ApplyProfile
|
||||
ClockTest.ClockMonotonic
|
||||
ClockTest.DeadlineAfter
|
||||
DefaultExceptionHandlerTest.UnhandledHardwareException
|
||||
DefaultExceptionHandlerTest.UnhandledPolicyException
|
||||
DebugLogTest.WriteRead
|
||||
ExecutableTlsTest.BasicInitalizersInThread
|
||||
ExecutableTlsTest.BasicInitalizersInMain
|
||||
ExecutableTlsTest.ArrayInitializerInThread
|
||||
ExecutableTlsTest.ArrayInitializerInMain
|
||||
ExecutableTlsTest.BigArrayInitializerInThread
|
||||
ExecutableTlsTest.BigArrayInitializerInMain
|
||||
ExecutableTlsTest.StructureInitializerInThread
|
||||
ExecutableTlsTest.StructureInitalizierInMain
|
||||
ExecutableTlsTest.AlignmentInitializerInThread
|
||||
ExecutableTlsTest.AlignmentInitializierInMain
|
||||
ExecutableTlsTest.ArrayInitializerSpamThread
|
||||
ExecutableTlsTest.ArrayInitializierSpamMain
|
||||
EventPairTest.HandlesNotInvalid
|
||||
EventPairTest.HandleRightsAreCorrect
|
||||
EventPairTest.KoidsAreCorrect
|
||||
EventPairTest.CheckNoFlagsSupported
|
||||
EventPairTest.SignalEventPairAndClearVerifySignals
|
||||
EventPairTest.SignalPeerAndVerifyRecived
|
||||
EventPairTest.SignalPeerThenCloseAndVerifySignalReceived
|
||||
EventPairTest.SignalingClosedPeerReturnsPeerClosed
|
||||
FifoTest.InvalidParametersReturnOutOfRange
|
||||
FifoTest.EndpointsAreRelated
|
||||
FifoTest.EmptyQueueReturnsErrShouldWait
|
||||
FifoTest.ReadAndWriteValidatesSizeAndElementCount
|
||||
FifoTest.DequeueSignalsWriteable
|
||||
FifoTest.FifoOrderIsPreserved
|
||||
FifoTest.PartialWriteQueuesElementsThatFit
|
||||
FifoTest.IndividualReadsPreserveOrder
|
||||
FifoTest.EndpointCloseSignalsPeerClosed
|
||||
FPUTest.LongComputeLoop
|
||||
FutexTest.WaitValueMismatch
|
||||
FutexTest.WaitTimeout
|
||||
FutexTest.WaitTimeoutElapsed
|
||||
FutexTest.WaitBadAddress
|
||||
FutexTest.Wakeup
|
||||
FutexTest.WakeupLimit
|
||||
FutexTest.WakeupAddress
|
||||
FutexTest.RequeueValueMismatch
|
||||
FutexTest.RequeueSameAddr
|
||||
FutexTest.Requeue
|
||||
FutexTest.RequeueUnqueuedOnTimeout
|
||||
FutexTest.ThreadSuspended
|
||||
FutexTest.MisalignedFutextAddr
|
||||
FutexTest.EventSignaling
|
||||
HandleCloseTest.Many
|
||||
HandleCloseTest.ManyInvalidHandlesShouldNotFail
|
||||
HandleCloseTest.ManyDuplicateTest
|
||||
HandleDup.ReplaceSuccessOrigInvalid
|
||||
HandleDup.ReplaceFailureBothInvalid
|
||||
HandleDup.Replace
|
||||
HandleDup.Duplicate
|
||||
HandleInfoTest.DupAndInfoRights
|
||||
HandleInfoTest.RelatedKoid
|
||||
HandleInfoTest.DuplicateRights
|
||||
HandleInfoTest.ReplaceRights
|
||||
HandleTransferTest.OverChannelThenRead
|
||||
HandleTransferTest.CancelsWait
|
||||
HandleWaitTest.HandleWaitTest
|
||||
HandleWaitTest.HandleWaitMultipleThreads
|
||||
InterruptTest.NonBindablePort
|
||||
InterruptTest.BindTriggeredIrqToPorts
|
||||
InterruptTest.BindPort
|
||||
InterruptTest.UnBindPort
|
||||
InterruptTest.VirtualInterrupts
|
||||
InterruptTest.WaitThreadFunctionsAfterSuspendResume
|
||||
InterruptTest.MAYBE_BindVcpuTest
|
||||
InterruptTest.UnableToBindVirtualInterruptToVcpu
|
||||
InterruptTest.MAYBE_UnableToBindToVcpuAfterPort
|
||||
InterruptTest.NullOutputTimestamp
|
||||
JobTest.BasicTest
|
||||
JobTest.CreateTest
|
||||
JobTest.CreateMissingRightsTest
|
||||
JobTest.PolicyInvalidTopicTest
|
||||
JobTest.PolicyBasicOverrideAllowTest
|
||||
JobTest.PolicyTimerSlackInvalidOptionsTest
|
||||
JobTest.PolicyTimerSlackInvalidCountTest
|
||||
JobTest.PolicyTimerSlackValid
|
||||
JobTest.KillJobNoChildTest
|
||||
JobTest.JobSignals
|
||||
JobTest.PolicyBasicOverrideDenyTest
|
||||
JobTest.PolicyTimerSlackInvalidPolicyTest
|
||||
JobTest.PolicyTimerSlackNonEmptyTest
|
||||
JobTest.KillTest
|
||||
JobTest.KillJobRemovesFromTree
|
||||
JobTest.CloseJobRemovesFromTree
|
||||
JobTest.KillJobChain
|
||||
JobTest.OneCriticalProcessKillsOneJob
|
||||
JobTest.ManyCriticalProcessesKillOneJob
|
||||
JobTest.OneCriticalProcessKillsJobTree
|
||||
JobTest.OneCriticalProcessKillsOneJobIfRetcodeNonzero
|
||||
JobTest.CriticalProcessNotInAncestor
|
||||
JobTest.CriticalProcessAlreadySet
|
||||
JobTest.SetJobOomKillBit
|
||||
JobTest.WaitTest
|
||||
JobTest.MaxHeightSmoke
|
||||
JobTest.GetRuntimeTest
|
||||
JobGetInfoTest.InfoJobProcessesPartiallyUnmappedBufferIsInvalidArgs
|
||||
JobGetInfoTest.InfoJobProcessesGetChild
|
||||
JobGetInfoTest.InfoJobChildJobsGetChild
|
||||
JobGetInfoTest.InfoJobProcessesOnSelfSuceeds
|
||||
JobGetInfoTest.InfoJobProcessesInvalidHandleFails
|
||||
JobGetInfoTest.InfoJobProcessesZeroSizedBufferIsOk
|
||||
JobGetInfoTest.InfoJobProcessesSmallBufferIsOk
|
||||
JobGetInfoTest.InfoJobProcessesNullAvailSucceeds
|
||||
JobGetInfoTest.InfoJobProcessesNullActualSucceeds
|
||||
JobGetInfoTest.InfoJobProcessesNullActualAndAvailSucceeds
|
||||
JobGetInfoTest.InfoJobProcessesInvalidBufferPointerFails
|
||||
JobGetInfoTest.InfoJobProcessesBadActualgIsInvalidArg
|
||||
JobGetInfoTest.InfoJobProcessesBadAvailIsInvalidArg
|
||||
MemoryMappingTest.MmapZerofilledTest
|
||||
MemoryMappingTest.MmapLenTest
|
||||
MemoryMappingTest.MmapOffsetTest
|
||||
MemoryMappingTest.MmapProtExecTest
|
||||
MemoryMappingTest.MmapFlagsTest
|
||||
MemoryMappingTest.AddressSpaceLimitsTest
|
||||
MemoryMappingTest.MmapProtTest
|
||||
MemoryMappingTest.MprotectTest
|
||||
MsiTest.AllocateSyscall
|
||||
MsiTest.CreateSyscallArgs
|
||||
MsiTest.Msi
|
||||
ObjectWaitManyTest.TooManyObjects
|
||||
ObjectWaitManyTest.InvalidHandle
|
||||
ObjectWaitManyTest.WaitForEventsSignaled
|
||||
ObjectWaitManyTest.WaitForEventsThenSignal
|
||||
ObjectWaitManyTest.TransientSignalsNotReturned
|
||||
ObjectChildTest.InvalidHandleReturnsBadHandle
|
||||
ObjectGetInfoTest.OpenValidHandleSuceeds
|
||||
ObjectGetInfoTest.ClosedValidHandleFails
|
||||
ObjectGetInfoTest.HandleCountCorrectness
|
||||
ObjectGetInfoTest.InvalidHandleFails
|
||||
ObjectWaitOneTest.WaitForEventSignaled
|
||||
ObjectWaitOneTest.WaitForEventTimeout
|
||||
ObjectWaitOneTest.EmptySignalSet
|
||||
ObjectWaitOneTest.WaitForEventTimeoutPreSignalClear
|
||||
ObjectWaitOneTest.WaitForEventThenSignal
|
||||
ObjectWaitOneTest.TransientSignalsNotReturned
|
||||
Pager.SinglePageTest_vmar
|
||||
Pager.SinglePageTest_vmo
|
||||
Pager.UncommittedSinglePageTest_vmar
|
||||
Pager.UncommittedSinglePageTest_vmo
|
||||
Pager.PresupplyTest_vmar
|
||||
Pager.PresupplyTest_vmo
|
||||
Pager.EarlySupplyTest_vmar
|
||||
Pager.EarlySupplyTest_vmo
|
||||
Pager.SequentialMultipageTest_vmar
|
||||
Pager.SequentialMultipageTest_vmo
|
||||
Pager.ConcurrentMultipageAccessTest_vmar
|
||||
Pager.ConcurrentMultipageAccessTest_vmo
|
||||
Pager.ConcurrentOverlappingAccessTest_vmar
|
||||
Pager.ConcurrentOverlappingAccessTest_vmo
|
||||
Pager.BulkSingleSupplyTest_vmar
|
||||
Pager.BulkSingleSupplyTest_vmo
|
||||
Pager.BulkOddLengthSupplyTest_vmar
|
||||
Pager.BulkOddLengthSupplyTest_vmo
|
||||
Pager.BulkOddOffsetSupplyTest_vmar
|
||||
Pager.BulkOddOffsetSupplyTest_vmo
|
||||
Pager.OverlapSupplyTest_vmar
|
||||
Pager.OverlapSupplyTest_vmo
|
||||
Pager.ManyRequestTest_vmar
|
||||
Pager.ManyRequestTest_vmo
|
||||
Pager.SuccessiveVmoTest
|
||||
Pager.MultipleConcurrentVmoTest
|
||||
Pager.VmarUnmapTest
|
||||
Pager.VmarRemapTest
|
||||
Pager.VmarMapRangeTest
|
||||
Pager.ReadResizeTest_vmar
|
||||
Pager.ReadResizeTest_vmo
|
||||
Pager.SuspendReadTest_vmar
|
||||
Pager.SuspendReadTest_vmo
|
||||
Pager.VmoInfoPagerTest
|
||||
Pager.DetachPageCompleteTest
|
||||
Pager.ClosePageCompleteTest
|
||||
Pager.ReadCloseInterruptLateTest_vmar
|
||||
Pager.ReadCloseInterruptLateTest_vmo
|
||||
Pager.ReadDetachInterruptLateTest_vmar
|
||||
Pager.ReadDetachInterruptLateTest_vmo
|
||||
Pager.ReadCloseInterruptEarlyTest_vmar
|
||||
Pager.ReadCloseInterruptEarlyTest_vmo
|
||||
Pager.ReadDetachInterruptEarlyTest_vmar
|
||||
Pager.ReadDetachInterruptEarlyTest_vmo
|
||||
Pager.ClosePagerTest
|
||||
Pager.DetachClosePagerTest
|
||||
Pager.ClosePortTest
|
||||
Pager.CloneReadFromCloneTest_vmar
|
||||
Pager.CloneReadFromCloneTest_vmo
|
||||
Pager.CloneReadFromParentTest_vmar
|
||||
Pager.CloneReadFromParentTest_vmo
|
||||
Pager.CloneSimultaneousReadTest_vmar
|
||||
Pager.CloneSimultaneousReadTest_vmo
|
||||
Pager.CloneSimultaneousChildReadTest_vmar
|
||||
Pager.CloneSimultaneousChildReadTest_vmo
|
||||
Pager.CloneWriteToCloneTest_vmar
|
||||
Pager.CloneWriteToCloneTest_vmo
|
||||
Pager.CloneDetachTest
|
||||
Pager.CloneCommitTest
|
||||
Pager.CloneSplitCommitTest
|
||||
Pager.CloneResizeCloneHazard
|
||||
Pager.CloneResizeParentOK
|
||||
Pager.CloneShrinkGrowParent
|
||||
Pager.SimpleCommitTest
|
||||
Pager.SplitCommitTest
|
||||
Pager.OverlapCommitTest
|
||||
Pager.OverlapCommitSupplyTest
|
||||
Pager.MultisupplyCommitTest
|
||||
Pager.MulticommitSupplyTest
|
||||
Pager.CommitRedundantSupplyTest
|
||||
Pager.ResizeCommitTest
|
||||
Pager.SuspendCommitTest
|
||||
Pager.InvalidPagerCreate
|
||||
Pager.InvalidPagerCreateVmo
|
||||
Pager.InvalidPagerDetachVmo
|
||||
Pager.InvalidPagerSupplyPages
|
||||
Pager.ResizeNonresizableVmo
|
||||
Pager.DecommitTest
|
||||
Pager.UncommittedSupply
|
||||
Pager.InvalidPagerOpRange
|
||||
Pager.FailSinglePage_vmar
|
||||
Pager.FailSinglePage_vmo
|
||||
Pager.FailExactRange
|
||||
Pager.FailMultipleCommits
|
||||
Pager.FailMultipleVmos
|
||||
Pager.FailOverlappingRange
|
||||
Pager.FailRedundant
|
||||
Pager.FailAfterDetach
|
||||
Pager.SupplyAfterFail
|
||||
Pager.FailErrorCode
|
||||
Pager.WritingZeroFork
|
||||
Pager.CleanThreadKill
|
||||
PortTest.AsyncWaitInvalidOption
|
||||
PortTest.QueueNullPtrReturnsInvalidArgs
|
||||
PortTest.QueueWaitVerifyUserPacket
|
||||
PortTest.PortTimeout
|
||||
PortTest.QueueAndClose
|
||||
PortTest.QueueTooMany
|
||||
PortTest.AsyncWaitChannelTimedOut
|
||||
PortTest.AsyncWaitChannel
|
||||
PortTest.AsyncWaitCloseOrder
|
||||
PortTest.AsyncWaitEventRepeat
|
||||
PortTest.AsyncWaitEventManyAllProcessed
|
||||
PortTest.EventAsyncSignalWaitSingle
|
||||
PortTest.ChannelAsyncWaitOnExistingStateIsNotified
|
||||
PortTest.CancelEventKey
|
||||
PortTest.CancelEventKeyAfter
|
||||
PortTest.ThreadEvents
|
||||
PortTest.Timestamp
|
||||
PortTest.CloseQueueRace
|
||||
PortStressTest.WaitSignalCancel
|
||||
PortStressTest.SignalCloseWait
|
||||
PortStressTest.CloseWaitRace
|
||||
ProcessTest.ProcessWaitAsyncCancelSelf
|
||||
ProcessTest.LongNameSucceeds
|
||||
ProcessTest.EmptyNameSucceeds
|
||||
ProcessTest.MiniProcessSanity
|
||||
ProcessTest.ProcessStartNoHandle
|
||||
ProcessTest.ProcessStartFail
|
||||
ProcessTest.ProcessNotKilledViaThreadClose
|
||||
ProcessTest.ProcessNotKilledViaProcessClose
|
||||
ProcessTest.KillProcessViaThreadKill
|
||||
ProcessTest.KillChannelHandleCycle
|
||||
ProcessTest.SuspendSelf
|
||||
ProcessTest.CreateAndKillJobRaceStress
|
||||
ProcessTest.GetRuntimeNoPermission
|
||||
ProcessTest.InfoReflectsProcessState
|
||||
ProcessTest.Suspend
|
||||
ProcessTest.SuspendMultipleThreads
|
||||
ProcessTest.SuspendBeforeCreatingThreads
|
||||
ProcessTest.SuspendBeforeStartingThreads
|
||||
ProcessTest.SuspendProcessThenThread
|
||||
ProcessTest.SuspendThreadThenProcess
|
||||
ProcessTest.SuspendThreadAndProcessBeforeStartingProcess
|
||||
ProcessTest.SuspendTwice
|
||||
ProcessTest.SuspendTwiceBeforeCreatingThreads
|
||||
ProcessTest.SuspendWithDyingThread
|
||||
ProcessTest.GetTaskRuntime
|
||||
ProcessTest.ProcessStartWriteThreadState
|
||||
ProcessTest.ForbidDestroyRootVmar
|
||||
ProcessDebugUtilsTest.XorShiftIsOk
|
||||
ProcessDebugTest.ReadMemoryAtOffsetIsOk
|
||||
ProcessDebugTest.WriteMemoryAtOffsetIsOk
|
||||
ProcessDebugTest.ReadMemoryAtInvalidOffsetReturnsErrorNoMemory
|
||||
ProcessDebugTest.WriteAtInvalidOffsetReturnsErrorNoMemory
|
||||
ProcessDebugVDSO.WriteToVdsoAddressReturnsAccessDenied
|
||||
Pthread.Basic
|
||||
Pthread.SelfMainThread
|
||||
Pthread.BigStackSize
|
||||
Pthread.GetstackMainThread
|
||||
Pthread.GetstackOtherThread
|
||||
Pthread.GetstackOtherThreadExplicitSize
|
||||
PThreadBarrierTest.SingleThreadWinsBarrierObject
|
||||
PThreadBarrierTest.SingleThreadWinsBarrierObjectResetsBetweenIterations
|
||||
PThreadBarrierTest.InitWithNoThreadsReturnsInval
|
||||
PthreadTls.PthreadTls
|
||||
ProcessGetInfoTest.InfoHandleBasicOnSelfSuceeds
|
||||
ProcessGetInfoTest.InfoHandleBasicInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoHandleBasicNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoHandleBasicNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoHandleBasicNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoHandleBasicInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoHandleBasicBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoHandleBasicBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessOnSelfSuceeds
|
||||
ProcessGetInfoTest.InfoProcessInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoProcessNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessJobHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoProcessThreadHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoProcessThreadsSelfSuceeds
|
||||
ProcessGetInfoTest.InfoProcessThreadsInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessThreadsZeroSizedBufferSucceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsUnstartedSuceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsSmokeTest
|
||||
ProcessGetInfoTest.InfoProcessHandleStats
|
||||
ProcessGetInfoTest.InfoProcessHandleTable
|
||||
ProcessGetInfoTest.InfoProcessHandleTableInsufficientRights
|
||||
ProcessGetInfoTest.InfoProcessHandleTableEmpty
|
||||
ProcessGetInfoTest.InfoProcessHandleTableSelf
|
||||
ProcessGetInfoTest.InfoProcessHandleTableInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessHandleTableNullAvailSuceeds
|
||||
ProcessGetInfoTest.InfoProcessHandleTableNullActualAvailSuceeds
|
||||
ProcessGetInfoTest.InfoProcessHandleTableInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessMapsOnSelfFails
|
||||
ProcessGetInfoTest.InfoProcessMapsInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessMapsNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessMapsBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessMapsBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessMapsZeroSizedBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessMapsSmallBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessMapsPartiallyUnmappedBufferIsInvalidArgs
|
||||
ProcessGetInfoTest.InfoProcessMapsRequiresInspectRights
|
||||
ProcessGetInfoTest.InfoProcessVmosSmokeTest
|
||||
ProcessGetInfoTest.InfoProcessVmosInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessVmosNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessVmosBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessVmosBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessVmosZeroSizedBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessVmosSmallBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessVmosPartiallyUnmappedBufferIsInvalidArgs
|
||||
ProcessGetInfoTest.InfoProcessVmosRequiresInspectRights
|
||||
ProcessGetInfoTest.InfoProcessVmosJobHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoProcessVmosThreadHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoHandleBasicZeroSizedFails
|
||||
ProcessGetInfoTest.InfoProcessZeroSizedBufferFails
|
||||
ProcessGetInfoTest.InfoProcessThreadsNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessThreadsNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoProcessThreadsNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessThreadsInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessThreadsBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessThreadsBadAvailIsInvalidArg
|
||||
ProgressiveCloneDiscardTests.ProgressiveCloneClose
|
||||
ProgressiveCloneDiscardTests.ProgressiveCloneTruncate
|
||||
ProfileTest.CreateProfileWithDefaultInitializedProfileInfoIsError
|
||||
ProfileTest.CreateProfileWithMutuallyExclusiveFlagsIsInvalidArgs
|
||||
ProfileTest.CreateProfileWithNoProfileInfoIsInvalidArgs
|
||||
ProfileTest.CreateProfileWithInvalidHandleIsBadHandle
|
||||
ProfileTest.CreateProfileWithNullProfileIsInvalidArgs
|
||||
Resource.ProbeAddressSpace
|
||||
Resource.BasicActions
|
||||
Resource.InvalidArgs
|
||||
Resource.ExclusiveShared
|
||||
Resource.SharedExclusive
|
||||
Resource.VmoCreation
|
||||
Resource.VmoCreationSmaller
|
||||
Resource.VmoCreationUnaligned
|
||||
Resource.VmoReplaceAsExecutable
|
||||
Resource.CreateResourceSlice
|
||||
Resource.Ioports
|
||||
SocketTest.EndpointsAreRelated
|
||||
SocketTest.EmptySocketShouldWait
|
||||
SocketTest.WriteReadDataVerify
|
||||
SocketTest.PeerClosedError
|
||||
SocketTest.PeekingLeavesData
|
||||
SocketTest.PeekingIntoEmpty
|
||||
SocketTest.Signals
|
||||
SocketTest.SetThreshholdsProp
|
||||
SocketTest.SetThreshholdsAndCheckSignals
|
||||
SocketTest.SignalClosedPeer
|
||||
SocketTest.PeerClosedSetProperty
|
||||
SocketTest.ShutdownWrite
|
||||
SocketTest.ShutdownRead
|
||||
SocketTest.BytesOutstanding
|
||||
SocketTest.ShutdownWriteBytesOutstanding
|
||||
SocketTest.ShutdownReadBytesOutstanding
|
||||
SocketTest.ShortWrite
|
||||
SocketTest.Datagram
|
||||
SocketTest.DatagramPeek
|
||||
SocketTest.DatagramPeekEmpty
|
||||
SocketTest.DatagramNoShortWrite
|
||||
SocketTest.ZeroSize
|
||||
SocketTest.ReadIntoNullBuffer
|
||||
SocketTest.ReadIntoBadBuffer
|
||||
SocketTest.WriteFromNullBuffer
|
||||
SocketTest.WriteFromBadBuffer
|
||||
StackTest.MainThreadStack
|
||||
StackTest.ThreadStack
|
||||
StreamTestCase.Create
|
||||
StreamTestCase.Seek
|
||||
StreamTestCase.ReadV
|
||||
StreamTestCase.WriteV
|
||||
StreamTestCase.WriteExtendsContentSize
|
||||
StreamTestCase.WriteExtendsVMOSize
|
||||
StreamTestCase.ReadVAt
|
||||
StreamTestCase.WriteVAt
|
||||
StreamTestCase.ReadVectorAlias
|
||||
StreamTestCase.Append
|
||||
StreamTestCase.ExtendFillsWithZeros
|
||||
SyncCompletionTest.Initializer
|
||||
SyncCompletionTest.SingleWait
|
||||
SyncCompletionTest.MultiWait
|
||||
SyncCompletionTest.TimeoutSingleWait
|
||||
SyncCompletionTest.TimeoutMultiWait
|
||||
SyncCompletionTest.PresignalSingleWait
|
||||
SyncCompletionTest.PresignalMultiWait
|
||||
SyncCompletionTest.ResetCycleSingleWait
|
||||
SyncCompletionTest.ResetCycleMultiWait
|
||||
SyncCompletionTest.SignalRequeue
|
||||
SyncCompletionTest.SpuriousWakeupHandled
|
||||
SyncCondition.ConditionTest
|
||||
SyncCondition.TimeoutTest
|
||||
SyncMutex.NoRecursion
|
||||
SyncMutex.Mutexes
|
||||
SyncMutex.TryMutexes
|
||||
SyncMutex.TimeoutElapsed
|
||||
SystemEvent.RetrieveOom
|
||||
SystemEvent.CannotSignalOomFromUserspace
|
||||
SystemEvent.RetrieveMempressureCritical
|
||||
SystemEvent.CannotSignalMempressureCriticalFromUserspace
|
||||
SystemEvent.RetreiveMempressureWarning
|
||||
SystemEvent.CannotSignalMempressureWarningFromUserspace
|
||||
SystemEvent.RetrieveMempressureNormal
|
||||
SystemEvent.CannotSignalMempressureNormalFromUserspace
|
||||
SystemEvent.ExactlyOneMemoryEventSignaled
|
||||
SchedulerProfileTest.CreateProfileWithDefaultPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithLowestPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithLowPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithHihgPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithHighestPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithPriorityExceedingHighestIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithPriorityBelowLowestIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithDeadlineIsOk
|
||||
SchedulerProfileTest.CreateProfileWithZeroCapacityIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithDeadlineBelowCapacityIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithPeriodBelowDeadlineIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileOnNonRootJobIsAccessDenied
|
||||
SchedulerProfileTest.CreateProfileWithNonZeroOptionsIsInvalidArgs
|
||||
SchedulerProfileTest.SetThreadPriorityIsOk
|
||||
Threads.ThreadStartWithZeroInstructionPointer
|
||||
Threads.Basics
|
||||
Threads.InvalidRights
|
||||
Threads.Detach
|
||||
Threads.EmptyNameSucceeds
|
||||
Threads.LongNameSucceeds
|
||||
Threads.ThreadStartOnInitialThread
|
||||
Threads.NonstartedThread
|
||||
Threads.InfoTaskStatsFails
|
||||
Threads.GetLastScheduledCpu
|
||||
Threads.GetInfoRuntime
|
||||
Threads.GetAffinity
|
||||
Threads.ResumeSuspended
|
||||
Threads.SuspendSleeping
|
||||
Threads.SuspendChannelCall
|
||||
Threads.SuspendPortCall
|
||||
Threads.SuspendStopsThread
|
||||
Threads.SuspendMultiple
|
||||
Threads.SuspendSelf
|
||||
Threads.KillSuspendedThread
|
||||
Threads.StartSuspendedThread
|
||||
Threads.StartSuspendedAndResumedThread
|
||||
Threads.SuspendSingleWaitAsyncSignalDelivery
|
||||
Threads.SuspendRepeatingWaitAsyncSignalDelivery
|
||||
Threads.ReadingGeneralRegisterState
|
||||
Threads.ReadingFpRegisterState
|
||||
Threads.ReadingVectorRegisterState
|
||||
Threads.WritingGeneralRegisterState
|
||||
Threads.WritingSingleStepState
|
||||
Threads.WritingFpRegisterState
|
||||
Threads.WritingVectorRegisterState
|
||||
Threads.WritingVectorRegisterState_UnsupportedFieldsIgnored
|
||||
Threads.WriteThreadStateWithInvalidMxcsrIsInvalidArgs
|
||||
Threads.ThreadLocalRegisterState
|
||||
Threads.NoncanonicalRipAddressSyscall
|
||||
Threads.NoncanonicalRipAddressIRETQ
|
||||
Threads.WritingArmFlagsRegister
|
||||
Threads.WriteReadDebugRegisterState
|
||||
Threads.DebugRegistersValidation
|
||||
Threads.X86AcFlagUserCopy
|
||||
TaskGetInfoTest.InfoStatsUnstartedSuceeds
|
||||
TaskGetInfoTest.InfoStatsSmokeTest
|
||||
TaskGetInfoTest.InfoTaskStatsInvalidHandleFails
|
||||
TaskGetInfoTest.InfoTaskStatsNullAvailSucceeds
|
||||
TaskGetInfoTest.InfoTaskStatsNullActualSucceeds
|
||||
TaskGetInfoTest.InfoTaskStatsNullActualAndAvailSucceeds
|
||||
TaskGetInfoTest.InfoTaskStatsInvalidBufferPointerFails
|
||||
TaskGetInfoTest.InfoTaskStatsBadActualgIsInvalidArg
|
||||
TaskGetInfoTest.InfoTaskStatsBadAvailIsInvalidArg
|
||||
TaskGetInfoTest.InfoTaskStatsJobHandleIsBadHandle
|
||||
TaskGetInfoTest.InfoTaskStatsThreadHandleIsBadHandle
|
||||
TaskGetInfoTest.InfoTaskRuntimeWrongType
|
||||
TaskGetInfoTest.InfoTaskStatsZeroSizedBufferIsTooSmall
|
||||
TaskGetInfoTest.InfoTaskRuntimeInvalidHandle
|
||||
ThreadGetInfoTest.InfoHandleBasicOnSelfSuceeds
|
||||
ThreadGetInfoTest.InfoHandleBasicInvalidHandleFails
|
||||
ThreadGetInfoTest.InfoHandleBasicNullAvailSucceeds
|
||||
ThreadGetInfoTest.InfoHandleBasicNullActualSucceeds
|
||||
ThreadGetInfoTest.InfoHandleBasicNullActualAndAvailSucceeds
|
||||
ThreadGetInfoTest.InfoHandleBasicInvalidBufferPointerFails
|
||||
ThreadGetInfoTest.InfoHandleBasicBadActualgIsInvalidArg
|
||||
ThreadGetInfoTest.InfoHandleBasicBadAvailIsInvalidArg
|
||||
ThreadGetInfoTest.InfoHandleCountOnSelfSuceeds
|
||||
ThreadGetInfoTest.InfoHandleCountInvalidHandleFails
|
||||
ThreadGetInfoTest.InfoHandleCountNullAvailSucceeds
|
||||
ThreadGetInfoTest.InfoHandleCountNullActualSucceeds
|
||||
ThreadGetInfoTest.InfoHandleCountNullActualAndAvailSucceeds
|
||||
ThreadGetInfoTest.InfoHandleCountInvalidBufferPointerFails
|
||||
ThreadGetInfoTest.InfoHandleCountBadActualgIsInvalidArg
|
||||
ThreadGetInfoTest.InfoHandleCountBadAvailIsInvalidArg
|
||||
ThreadGetInfoTest.InfoThreadOnSelfSuceeds
|
||||
ThreadGetInfoTest.InfoThreadInvalidHandleFails
|
||||
ThreadGetInfoTest.InfoThreadNullAvailSucceeds
|
||||
ThreadGetInfoTest.InfoThreadNullActualSucceeds
|
||||
ThreadGetInfoTest.InfoThreadNullActualAndAvailSucceeds
|
||||
ThreadGetInfoTest.InfoThreadInvalidBufferPointerFails
|
||||
ThreadGetInfoTest.InfoThreadBadActualgIsInvalidArg
|
||||
ThreadGetInfoTest.InfoThreadBadAvailIsInvalidArg
|
||||
ThreadGetInfoTest.InfoThreadJobHandleIsBadHandle
|
||||
ThreadGetInfoTest.InfoThreadProcessHandleIsBadHandle
|
||||
ThreadGetInfoTest.InfoThreadStatsJobHandleIsBadHandle
|
||||
ThreadGetInfoTest.InfoThreadStatsProcessHandleIsBadHandle
|
||||
ThreadGetInfoTest.InfoHandleBasicZeroSizedBufferFails
|
||||
ThreadGetInfoTest.InfoHandleCountZeroSizedBufferFails
|
||||
ThreadGetInfoTest.InfoThreadZeroSizedBufferFails
|
||||
ThreadGetInfoTest.InfoThreadStatsOnSelfSuceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsInvalidHandleFails
|
||||
ThreadGetInfoTest.InfoThreadStatsNullAvailSucceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsNullActualSucceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsNullActualAndAvailSucceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsInvalidBufferPointerFails
|
||||
ThreadGetInfoTest.InfoThreadStatsBadActualgIsInvalidArg
|
||||
ThreadGetInfoTest.InfoThreadStatsBadAvailIsInvalidArg
|
||||
ThreadGetInfoTest.InfoThreadStatsZeroSizedBufferFails
|
||||
ThreadGetInfoTest.InfoThreadExceptionReportInvalidHandleFails
|
||||
Thread.SuspendAfterDeath
|
||||
TicksTest.ElapsedTimeUsingTicks
|
||||
Vmar.DestroyTest
|
||||
Vmar.BasicAllocateTest
|
||||
Vmar.MapInCompactTest
|
||||
Vmar.AllocateOobTest
|
||||
Vmar.UnalignedLenTest
|
||||
Vmar.UnalignedLenMapTest
|
||||
Vmar.ObjectInfoTest
|
||||
Vmar.UnmapSplitTest
|
||||
Vmar.UnmapMultipleTest
|
||||
Vmar.UnmapBaseNotMappedTest
|
||||
Vmar.MapInUppderLimitTest
|
||||
Vmar.AllocateUnsatisfiableTest
|
||||
Vmar.DestroyedVmarTest
|
||||
Vmar.MapOverDestroyedTest
|
||||
Vmar.AlignmentVmarMapTest
|
||||
Vmar.AlignmentVmarAllocateTest
|
||||
Vmar.VmarMapRangeOffsetTest
|
||||
Vmar.OvermappingTest
|
||||
Vmar.InvalidArgsTest
|
||||
Vmar.RightsDropTest
|
||||
Vmar.ProtectTest
|
||||
Vmar.NestedRegionPermsTest
|
||||
Vmar.MapSpecificOverwriteTest
|
||||
Vmar.ProtectSplitTest
|
||||
Vmar.ProtectMultipleTest
|
||||
Vmar.ProtectOverDemandPagedTest
|
||||
Vmar.ProtectLargeUncomittedTest
|
||||
Vmar.RangeOpCommitVmoPages
|
||||
Vmar.UnmapLargeUncommittedTest
|
||||
Vmar.PartialUnmapAndRead
|
||||
Vmar.PartialUnmapAndWrite
|
||||
Vmar.PartialUnmapWithVmarOffset
|
||||
Vmar.AllowFaultsTest
|
||||
Vmar.ConcurrentUnmapReadMemory
|
||||
VmoTestCase.ReadOnlyMap
|
||||
VmoTestCase.Create
|
||||
VmoTestCase.ReadWriteBadLen
|
||||
VmoTestCase.ReadWrite
|
||||
VmoTestCase.ReadWriteRange
|
||||
VmoTestCase.Map
|
||||
VmoTestCase.MapRead
|
||||
VmoTestCase.ParallelRead
|
||||
VmoTestCase.NoPermMap
|
||||
VmoTestCase.NoPermProtect
|
||||
VmoTestCase.Resize
|
||||
VmoTestCase.NoResize
|
||||
VmoTestCase.Info
|
||||
VmoTestCase.SizeAlign
|
||||
VmoTestCase.ResizeAlign
|
||||
VmoTestCase.ContentSize
|
||||
VmoTestCase.Rights
|
||||
VmoTestCase.Commit
|
||||
VmoTestCase.ZeroPage
|
||||
VmoTestCase.Cache
|
||||
VmoTestCase.PhysicalSlice
|
||||
VmoTestCase.CacheOp
|
||||
VmoTestCase.CacheFlush
|
||||
VmoTestCase.DecommitMisaligned
|
||||
VmoTestCase.ResizeHazard
|
||||
VmoTestCase.CompressedContiguous
|
||||
VmoTestCase.UncachedContiguous
|
||||
VmarGetInfoTest.InfoHandleBasicOnSelfSuceeds
|
||||
VmarGetInfoTest.InfoHandleBasicInvalidHandleFails
|
||||
VmarGetInfoTest.InfoHandleBasicNullAvailSucceeds
|
||||
VmarGetInfoTest.InfoHandleBasicNullActualSucceeds
|
||||
VmarGetInfoTest.InfoHandleBasicNullActualAndAvailSucceeds
|
||||
VmarGetInfoTest.InfoHandleBasicInvalidBufferPointerFails
|
||||
VmarGetInfoTest.InfoHandleBasicBadActualgIsInvalidArg
|
||||
VmarGetInfoTest.InfoHandleBasicBadAvailIsInvalidArg
|
||||
VmarGetInfoTest.InfoVmarOnSelfFails
|
||||
VmarGetInfoTest.InfoVmarInvalidHandleFails
|
||||
VmarGetInfoTest.InfoVmarNullAvailSucceeds
|
||||
VmarGetInfoTest.InfoVmarNullActualSucceeds
|
||||
VmarGetInfoTest.InfoVmarNullActualAndAvailSucceeds
|
||||
VmarGetInfoTest.InfoVmarInvalidBufferPointerFails
|
||||
VmarGetInfoTest.InfoVmarBadActualgIsInvalidArg
|
||||
VmarGetInfoTest.InfoVmarBadAvailIsInvalidArg
|
||||
VmarGetInfoTest.InfoVmarJobHandleIsBadHandle
|
||||
VmarGetInfoTest.InfoVmarProcessHandleIsBadHandle
|
||||
VmarGetInfoTest.InfoVmarThreadHandleIsBadHandle
|
||||
VmarGetInfoTest.InfoHandleBasicZeroSizedBufferFails
|
||||
VmarGetInfoTest.InfoVmarZeroSizedBufferFails
|
||||
VersionTest.ZxStringView
|
||||
VersionTest.StdStringView
|
||||
VersionTest.StdString
|
||||
VersionTest.CXX14StdString
|
||||
VmoCloneTestCase.SizeAlign
|
||||
VmoCloneTestCase.NameProperty
|
||||
VmoCloneTestCase.Commit
|
||||
VmoCloneTestCase.Decommit
|
||||
VmoCloneTestCase.Rights
|
||||
VmoCloneTestCase.NoResize
|
||||
VmoClone2TestCase.Info
|
||||
VmoClone2TestCase.Read
|
||||
VmoClone2TestCase.CloneVmoWrite
|
||||
VmoClone2TestCase.ParentVmoWrite
|
||||
VmoClone2TestCase.CloneVmarWrite
|
||||
VmoClone2TestCase.ParentVmarWrite
|
||||
VmoClone2TestCase.CloseOriginal
|
||||
VmoClone2TestCase.CloseClone
|
||||
VmoClone2TestCase.ObjMemAccounting
|
||||
VmoClone2TestCase.ZeroPageWrite
|
||||
VmoClone2TestCase.SplitPageClosure
|
||||
VmoClone2TestCase.Offset
|
||||
VmoClone2TestCase.OffsetTest2
|
||||
VmoClone2TestCase.OffsetProgressiveWrite
|
||||
VmoClone2TestCase.Overflow
|
||||
VmoClone2TestCase.OutOfBounds
|
||||
VmoClone2TestCase.SmallClone
|
||||
VmoClone2TestCase.SmallCloneChild
|
||||
VmoClone2TestCase.SmallClones
|
||||
VmoClone2TestCase.DisjointCloneTest2
|
||||
VmoClone2TestCase.DisjointCloneProgressive
|
||||
VmoClone2TestCase.ResizeGrow
|
||||
VmoClone2TestCase.ResizeOffsetChild
|
||||
VmoClone2TestCase.ResizeDisjointChild
|
||||
VmoClone2TestCase.ResizeMultipleProgressive
|
||||
VmoClone2TestCase.ResizeOverSiblingRange
|
||||
VmoClone2TestCase.Children
|
||||
VmoClone2TestCase.ManyChildren
|
||||
VmoClone2TestCase.ManyChildrenRevClose
|
||||
VmoClone2TestCase.ManyCloneMapping
|
||||
VmoClone2TestCase.ManyCloneOffset
|
||||
VmoClone2TestCase.ForbidContiguousVmo
|
||||
VmoClone2TestCase.PinBeforeCreateFailure
|
||||
VmoClone2TestCase.PinClonePages
|
||||
VmoClone2TestCase.Uncached
|
||||
VmoClone2TestCase.ParentStartLimitRegression
|
||||
VmoClone2TestCase.ManyCloneMappingOffset
|
||||
VmoClone2TestCase.NoPhysical
|
||||
VmoClone2TestCase.NoSnapshotPager
|
||||
VmoZeroTestCase.UnalignedSubPage
|
||||
VmoZeroTestCase.UnalignedCommitted
|
||||
VmoZeroTestCase.UnalignedUnCommitted
|
||||
VmoZeroTestCase.DecommitMiddle
|
||||
VmoZeroTestCase.Contiguous
|
||||
VmoZeroTestCase.ContentInParentAndChild
|
||||
VmoZeroTestCase.EmptyCowChildren
|
||||
VmoZeroTestCase.MergeZeroChildren
|
||||
VmoZeroTestCase.AllocateAfterMerge
|
||||
VmoZeroTestCase.AllocateAfterMergeHiddenChild
|
||||
VmoZeroTestCase.WriteCowParent
|
||||
VmoZeroTestCase.ChildZeroThenWrite
|
||||
VmoZeroTestCase.Nested
|
||||
VmoZeroTestCase.ZeroLengths
|
||||
VmoZeroTestCase.ResizeOverHiddenMarkers
|
||||
VmoSliceTestCase.WriteThrough
|
||||
VmoSliceTestCase.DecommitParent
|
||||
VmoSliceTestCase.Nested
|
||||
VmoSliceTestCase.NonSlice
|
||||
VmoSliceTestCase.NonResizable
|
||||
VmoSliceTestCase.CommitChild
|
||||
VmoSliceTestCase.DecommitChild
|
||||
VmoSliceTestCase.ZeroSized
|
||||
VmoSliceTestCase.ChildSliceOfContiguousParentIsContiguous
|
||||
VmoSliceTestCase.ZeroChildren
|
||||
VmoSliceTestCase.ZeroChildrenGrandchildClosedLast
|
||||
VmoSliceTestCase.CowPageSourceThroughSlices
|
||||
VmoSliceTestCase.RoundUpSizePhysical
|
||||
VmoSliceTestCase.RoundUpSize
|
||||
VmoSliceTestCase.NotCoWType
|
||||
VmoSliceTestCase.Pin
|
||||
VmoSignalTestCase.SignalSanity
|
||||
VmoSignalTestCase.ChildSignalClone
|
||||
VmoSignalTestCase.ChildSignalMap
|
||||
VmoCloneResizeTests.ResizeChild
|
||||
VmoCloneResizeTests.ResizeOriginal
|
||||
VmoCloneDisjointClonesTests.DisjointCloneEarlyClose
|
||||
VmoCloneDisjointClonesTests.DisjointCloneLateClose
|
||||
|
|
@ -1,266 +0,0 @@
|
|||
|
||||
BadAccessTest.InvalidMappedAddressFails
|
||||
BadAccessTest.SyscallNumTest
|
||||
CpuMaskProfile.EmptyMaskIsValid
|
||||
DefaultExceptionHandlerTest.UnhandledPolicyException
|
||||
HandleCloseTest.ManyDuplicateTest
|
||||
JobGetInfoTest.InfoJobProcessesBadActualgIsInvalidArg
|
||||
JobGetInfoTest.InfoJobProcessesBadAvailIsInvalidArg
|
||||
JobGetInfoTest.InfoJobProcessesInvalidBufferPointerFails
|
||||
JobGetInfoTest.InfoJobProcessesNullActualAndAvailSucceeds
|
||||
JobGetInfoTest.InfoJobProcessesNullActualSucceeds
|
||||
JobGetInfoTest.InfoJobProcessesNullAvailSucceeds
|
||||
JobTest.CloseJobRemovesFromTree
|
||||
JobTest.CriticalProcessAlreadySet
|
||||
JobTest.GetRuntimeTest
|
||||
JobTest.JobSignals
|
||||
JobTest.KillJobChain
|
||||
JobTest.KillJobRemovesFromTree
|
||||
JobTest.KillTest
|
||||
JobTest.ManyCriticalProcessesKillOneJob
|
||||
JobTest.MaxHeightSmoke
|
||||
JobTest.OneCriticalProcessKillsJobTree
|
||||
JobTest.OneCriticalProcessKillsOneJob
|
||||
JobTest.PolicyBasicOverrideDenyTest
|
||||
JobTest.PolicyTimerSlackInvalidPolicyTest
|
||||
JobTest.SetJobOomKillBit
|
||||
MemoryMappingTest.AddressSpaceLimitsTest
|
||||
Pager.BulkOddLengthSupplyTest_vmar
|
||||
Pager.BulkOddLengthSupplyTest_vmo
|
||||
Pager.BulkOddOffsetSupplyTest_vmar
|
||||
Pager.BulkOddOffsetSupplyTest_vmo
|
||||
Pager.BulkSingleSupplyTest_vmar
|
||||
Pager.BulkSingleSupplyTest_vmo
|
||||
Pager.CleanThreadKill
|
||||
Pager.CloneCommitTest
|
||||
Pager.CloneDetachTest
|
||||
Pager.CloneReadFromCloneTest_vmar
|
||||
Pager.CloneReadFromCloneTest_vmo
|
||||
Pager.CloneReadFromParentTest_vmar
|
||||
Pager.CloneReadFromParentTest_vmo
|
||||
Pager.CloneResizeCloneHazard
|
||||
Pager.CloneResizeParentOK
|
||||
Pager.CloneShrinkGrowParent
|
||||
Pager.CloneSimultaneousChildReadTest_vmar
|
||||
Pager.CloneSimultaneousChildReadTest_vmo
|
||||
Pager.CloneSimultaneousReadTest_vmar
|
||||
Pager.CloneSimultaneousReadTest_vmo
|
||||
Pager.CloneSplitCommitTest
|
||||
Pager.CloneWriteToCloneTest_vmar
|
||||
Pager.CloneWriteToCloneTest_vmo
|
||||
Pager.ClosePageCompleteTest
|
||||
Pager.ClosePagerTest
|
||||
Pager.ClosePortTest
|
||||
Pager.CommitRedundantSupplyTest
|
||||
Pager.ConcurrentMultipageAccessTest_vmar
|
||||
Pager.ConcurrentMultipageAccessTest_vmo
|
||||
Pager.ConcurrentOverlappingAccessTest_vmar
|
||||
Pager.ConcurrentOverlappingAccessTest_vmo
|
||||
Pager.DecommitTest
|
||||
Pager.DetachClosePagerTest
|
||||
Pager.DetachPageCompleteTest
|
||||
Pager.EarlySupplyTest_vmar
|
||||
Pager.EarlySupplyTest_vmo
|
||||
Pager.FailAfterDetach
|
||||
Pager.FailErrorCode
|
||||
Pager.FailExactRange
|
||||
Pager.FailMultipleCommits
|
||||
Pager.FailMultipleVmos
|
||||
Pager.FailOverlappingRange
|
||||
Pager.FailRedundant
|
||||
Pager.FailSinglePage_vmar
|
||||
Pager.FailSinglePage_vmo
|
||||
Pager.InvalidPagerCreate
|
||||
Pager.InvalidPagerCreateVmo
|
||||
Pager.InvalidPagerDetachVmo
|
||||
Pager.InvalidPagerOpRange
|
||||
Pager.InvalidPagerSupplyPages
|
||||
Pager.ManyRequestTest_vmar
|
||||
Pager.ManyRequestTest_vmo
|
||||
Pager.MulticommitSupplyTest
|
||||
Pager.MultipleConcurrentVmoTest
|
||||
Pager.MultisupplyCommitTest
|
||||
Pager.OverlapCommitSupplyTest
|
||||
Pager.OverlapCommitTest
|
||||
Pager.OverlapSupplyTest_vmar
|
||||
Pager.OverlapSupplyTest_vmo
|
||||
Pager.PresupplyTest_vmar
|
||||
Pager.PresupplyTest_vmo
|
||||
Pager.ReadCloseInterruptEarlyTest_vmar
|
||||
Pager.ReadCloseInterruptEarlyTest_vmo
|
||||
Pager.ReadCloseInterruptLateTest_vmar
|
||||
Pager.ReadCloseInterruptLateTest_vmo
|
||||
Pager.ReadDetachInterruptEarlyTest_vmar
|
||||
Pager.ReadDetachInterruptEarlyTest_vmo
|
||||
Pager.ReadDetachInterruptLateTest_vmar
|
||||
Pager.ReadDetachInterruptLateTest_vmo
|
||||
Pager.ReadResizeTest_vmar
|
||||
Pager.ReadResizeTest_vmo
|
||||
Pager.ResizeCommitTest
|
||||
Pager.ResizeNonresizableVmo
|
||||
Pager.SequentialMultipageTest_vmar
|
||||
Pager.SequentialMultipageTest_vmo
|
||||
Pager.SimpleCommitTest
|
||||
Pager.SinglePageTest_vmar
|
||||
Pager.SinglePageTest_vmo
|
||||
Pager.SplitCommitTest
|
||||
Pager.SuccessiveVmoTest
|
||||
Pager.SupplyAfterFail
|
||||
Pager.SuspendCommitTest
|
||||
Pager.SuspendReadTest_vmar
|
||||
Pager.SuspendReadTest_vmo
|
||||
Pager.UncommittedSinglePageTest_vmar
|
||||
Pager.UncommittedSinglePageTest_vmo
|
||||
Pager.UncommittedSupply
|
||||
Pager.VmarMapRangeTest
|
||||
Pager.VmarRemapTest
|
||||
Pager.VmarUnmapTest
|
||||
Pager.VmoInfoPagerTest
|
||||
Pager.WritingZeroFork
|
||||
PortTest.CancelEventKey
|
||||
PortTest.CancelEventKeyAfter
|
||||
PortTest.EventAsyncSignalWaitSingle
|
||||
ProcessDebugTest.ReadMemoryAtInvalidOffsetReturnsErrorNoMemory
|
||||
ProcessDebugTest.WriteAtInvalidOffsetReturnsErrorNoMemory
|
||||
ProcessDebugVDSO.WriteToVdsoAddressReturnsAccessDenied
|
||||
ProcessGetInfoTest.InfoHandleBasicZeroSizedFails
|
||||
ProcessGetInfoTest.InfoProcessHandleStats
|
||||
ProcessGetInfoTest.InfoProcessHandleTable
|
||||
ProcessGetInfoTest.InfoProcessHandleTableEmpty
|
||||
ProcessGetInfoTest.InfoProcessHandleTableInsufficientRights
|
||||
ProcessGetInfoTest.InfoProcessHandleTableInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessHandleTableInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessHandleTableNullActualAvailSuceeds
|
||||
ProcessGetInfoTest.InfoProcessHandleTableNullAvailSuceeds
|
||||
ProcessGetInfoTest.InfoProcessHandleTableSelf
|
||||
ProcessGetInfoTest.InfoProcessMapsBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessMapsBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessMapsInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessMapsInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessMapsNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsOnSelfFails
|
||||
ProcessGetInfoTest.InfoProcessMapsPartiallyUnmappedBufferIsInvalidArgs
|
||||
ProcessGetInfoTest.InfoProcessMapsRequiresInspectRights
|
||||
ProcessGetInfoTest.InfoProcessMapsSmallBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessMapsSmokeTest
|
||||
ProcessGetInfoTest.InfoProcessMapsUnstartedSuceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsZeroSizedBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessThreadsBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessThreadsBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessThreadsInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessThreadsNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessThreadsNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoProcessThreadsNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessVmosBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessVmosInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessVmosInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessVmosJobHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoProcessVmosNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosPartiallyUnmappedBufferIsInvalidArgs
|
||||
ProcessGetInfoTest.InfoProcessVmosRequiresInspectRights
|
||||
ProcessGetInfoTest.InfoProcessVmosSmallBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessVmosSmokeTest
|
||||
ProcessGetInfoTest.InfoProcessVmosThreadHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoProcessVmosZeroSizedBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessZeroSizedBufferFails
|
||||
ProcessTest.ForbidDestroyRootVmar
|
||||
ProcessTest.GetRuntimeNoPermission
|
||||
ProcessTest.GetTaskRuntime
|
||||
ProcessTest.InfoReflectsProcessState
|
||||
ProcessTest.Suspend
|
||||
ProcessTest.SuspendBeforeCreatingThreads
|
||||
ProcessTest.SuspendBeforeStartingThreads
|
||||
ProcessTest.SuspendMultipleThreads
|
||||
ProcessTest.SuspendProcessThenThread
|
||||
ProcessTest.SuspendThreadAndProcessBeforeStartingProcess
|
||||
ProcessTest.SuspendThreadThenProcess
|
||||
ProcessTest.SuspendTwice
|
||||
ProcessTest.SuspendTwiceBeforeCreatingThreads
|
||||
ProcessTest.SuspendWithDyingThread
|
||||
ProfileTest.CreateProfileWithDefaultInitializedProfileInfoIsError
|
||||
ProfileTest.CreateProfileWithInvalidHandleIsBadHandle
|
||||
ProfileTest.CreateProfileWithMutuallyExclusiveFlagsIsInvalidArgs
|
||||
ProfileTest.CreateProfileWithNoProfileInfoIsInvalidArgs
|
||||
ProfileTest.CreateProfileWithNullProfileIsInvalidArgs
|
||||
Resource.BasicActions
|
||||
Resource.CreateResourceSlice
|
||||
Resource.ExclusiveShared
|
||||
Resource.InvalidArgs
|
||||
Resource.Ioports
|
||||
Resource.ProbeAddressSpace
|
||||
Resource.SharedExclusive
|
||||
Resource.VmoCreation
|
||||
Resource.VmoCreationSmaller
|
||||
Resource.VmoCreationUnaligned
|
||||
Resource.VmoReplaceAsExecutable
|
||||
SchedulerProfileTest.CreateProfileOnNonRootJobIsAccessDenied
|
||||
SchedulerProfileTest.CreateProfileWithDeadlineBelowCapacityIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithDeadlineIsOk
|
||||
SchedulerProfileTest.CreateProfileWithDefaultPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithHighestPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithHihgPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithLowestPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithLowPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithNonZeroOptionsIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithPeriodBelowDeadlineIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithPriorityBelowLowestIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithPriorityExceedingHighestIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithZeroCapacityIsInvalidArgs
|
||||
SchedulerProfileTest.SetThreadPriorityIsOk
|
||||
SystemEvent.CannotSignalOomFromUserspace
|
||||
TaskGetInfoTest.InfoTaskRuntimeInvalidHandle
|
||||
TaskGetInfoTest.InfoTaskStatsZeroSizedBufferIsTooSmall
|
||||
ThreadGetInfoTest.InfoHandleBasicZeroSizedBufferFails
|
||||
ThreadGetInfoTest.InfoHandleCountZeroSizedBufferFails
|
||||
ThreadGetInfoTest.InfoThreadStatsBadActualgIsInvalidArg
|
||||
ThreadGetInfoTest.InfoThreadStatsBadAvailIsInvalidArg
|
||||
ThreadGetInfoTest.InfoThreadStatsInvalidBufferPointerFails
|
||||
ThreadGetInfoTest.InfoThreadStatsInvalidHandleFails
|
||||
ThreadGetInfoTest.InfoThreadStatsNullActualAndAvailSucceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsNullActualSucceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsNullAvailSucceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsOnSelfSuceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsZeroSizedBufferFails
|
||||
ThreadGetInfoTest.InfoThreadZeroSizedBufferFails
|
||||
Threads.DebugRegistersValidation
|
||||
Threads.GetAffinity
|
||||
Threads.GetInfoRuntime
|
||||
Threads.GetLastScheduledCpu
|
||||
Threads.NoncanonicalRipAddressIRETQ
|
||||
Threads.NoncanonicalRipAddressSyscall
|
||||
Threads.ReadingFpRegisterState
|
||||
Threads.ReadingGeneralRegisterState
|
||||
Threads.ReadingVectorRegisterState
|
||||
Threads.SuspendRepeatingWaitAsyncSignalDelivery
|
||||
Threads.SuspendSingleWaitAsyncSignalDelivery
|
||||
Threads.WriteReadDebugRegisterState
|
||||
Threads.WriteThreadStateWithInvalidMxcsrIsInvalidArgs
|
||||
Threads.WritingFpRegisterState
|
||||
Threads.WritingSingleStepState
|
||||
Threads.WritingVectorRegisterState
|
||||
Threads.WritingVectorRegisterState_UnsupportedFieldsIgnored
|
||||
Vmar.AlignmentVmarAllocateTest
|
||||
Vmar.AlignmentVmarMapTest
|
||||
VmarGetInfoTest.InfoHandleBasicZeroSizedBufferFails
|
||||
VmarGetInfoTest.InfoVmarZeroSizedBufferFails
|
||||
Vmar.InvalidArgsTest
|
||||
Vmar.MapInUppderLimitTest
|
||||
Vmar.MapSpecificOverwriteTest
|
||||
Vmar.NestedRegionPermsTest
|
||||
Vmar.OvermappingTest
|
||||
VmoCloneTestCase.NoPhysical
|
||||
VmoCloneTestCase.NoSnapshotPager
|
||||
VmoSliceTestCase.Pin
|
||||
VmoTestCase.Cache
|
||||
VmoTestCase.CacheFlush
|
||||
VmoTestCase.Commit
|
||||
VmoTestCase.CompressedContiguous
|
||||
VmoTestCase.DecommitMisaligned
|
||||
VmoTestCase.Info
|
||||
VmoTestCase.PhysicalSlice
|
||||
VmoTestCase.Rights
|
||||
|
|
@ -1,337 +0,0 @@
|
|||
BadAccessTest.ChannelReadHandle
|
||||
BadAccessTest.InvalidMappedAddressFails
|
||||
BadAccessTest.KernelMappedAddressChannelWriteFails
|
||||
BadAccessTest.PciCfgPioRwChannelReadHandle
|
||||
BadAccessTest.SyscallNumTest
|
||||
Bti.DecommitRace
|
||||
Bti.NoDelayedUnpin
|
||||
Bti.PinContigFlag
|
||||
Bti.PinContiguous
|
||||
ChannelInternalTest.CallFinishWithoutPreviouslyCallingCallReturnsBadState
|
||||
ChannelTest.CallPendingTransactionsUseDifferentIds
|
||||
CpuMaskProfile.ApplyProfile
|
||||
CpuMaskProfile.EmptyMaskIsValid
|
||||
DefaultExceptionHandlerTest.UnhandledHardwareException
|
||||
DefaultExceptionHandlerTest.UnhandledPolicyException
|
||||
FutexTest.RequeueUnqueuedOnTimeout
|
||||
FutexTest.ThreadSuspended
|
||||
FutexTest.WaitTimeoutElapsed
|
||||
FutexTest.Wakeup
|
||||
FutexTest.WakeupAddress
|
||||
HandleCloseTest.ManyDuplicateTest
|
||||
HandleTransferTest.CancelsWait
|
||||
InterruptTest.BindTriggeredIrqToPorts
|
||||
InterruptTest.MAYBE_BindVcpuTest
|
||||
InterruptTest.MAYBE_UnableToBindToVcpuAfterPort
|
||||
JobGetInfoTest.InfoJobProcessesBadActualgIsInvalidArg
|
||||
JobGetInfoTest.InfoJobProcessesBadAvailIsInvalidArg
|
||||
JobGetInfoTest.InfoJobProcessesInvalidBufferPointerFails
|
||||
JobGetInfoTest.InfoJobProcessesNullActualAndAvailSucceeds
|
||||
JobGetInfoTest.InfoJobProcessesNullActualSucceeds
|
||||
JobGetInfoTest.InfoJobProcessesNullAvailSucceeds
|
||||
JobGetInfoTest.InfoJobProcessesPartiallyUnmappedBufferIsInvalidArgs
|
||||
JobTest.CloseJobRemovesFromTree
|
||||
JobTest.CriticalProcessAlreadySet
|
||||
JobTest.GetRuntimeTest
|
||||
JobTest.JobSignals
|
||||
JobTest.KillJobChain
|
||||
JobTest.KillJobRemovesFromTree
|
||||
JobTest.KillTest
|
||||
JobTest.ManyCriticalProcessesKillOneJob
|
||||
JobTest.MaxHeightSmoke
|
||||
JobTest.OneCriticalProcessKillsJobTree
|
||||
JobTest.OneCriticalProcessKillsOneJob
|
||||
JobTest.OneCriticalProcessKillsOneJobIfRetcodeNonzero
|
||||
JobTest.PolicyBasicOverrideDenyTest
|
||||
JobTest.PolicyTimerSlackInvalidPolicyTest
|
||||
JobTest.SetJobOomKillBit
|
||||
JobTest.WaitTest
|
||||
MemoryMappingTest.AddressSpaceLimitsTest
|
||||
MemoryMappingTest.MmapProtExecTest
|
||||
MemoryMappingTest.MprotectTest
|
||||
Pager.BulkOddLengthSupplyTest_vmar
|
||||
Pager.BulkOddLengthSupplyTest_vmo
|
||||
Pager.BulkOddOffsetSupplyTest_vmar
|
||||
Pager.BulkOddOffsetSupplyTest_vmo
|
||||
Pager.BulkSingleSupplyTest_vmar
|
||||
Pager.BulkSingleSupplyTest_vmo
|
||||
Pager.CleanThreadKill
|
||||
Pager.CloneCommitTest
|
||||
Pager.CloneDetachTest
|
||||
Pager.CloneReadFromCloneTest_vmar
|
||||
Pager.CloneReadFromCloneTest_vmo
|
||||
Pager.CloneReadFromParentTest_vmar
|
||||
Pager.CloneReadFromParentTest_vmo
|
||||
Pager.CloneResizeCloneHazard
|
||||
Pager.CloneResizeParentOK
|
||||
Pager.CloneShrinkGrowParent
|
||||
Pager.CloneSimultaneousChildReadTest_vmar
|
||||
Pager.CloneSimultaneousChildReadTest_vmo
|
||||
Pager.CloneSimultaneousReadTest_vmar
|
||||
Pager.CloneSimultaneousReadTest_vmo
|
||||
Pager.CloneSplitCommitTest
|
||||
Pager.CloneWriteToCloneTest_vmar
|
||||
Pager.CloneWriteToCloneTest_vmo
|
||||
Pager.ClosePageCompleteTest
|
||||
Pager.ClosePagerTest
|
||||
Pager.ClosePortTest
|
||||
Pager.CommitRedundantSupplyTest
|
||||
Pager.ConcurrentMultipageAccessTest_vmar
|
||||
Pager.ConcurrentMultipageAccessTest_vmo
|
||||
Pager.ConcurrentOverlappingAccessTest_vmar
|
||||
Pager.ConcurrentOverlappingAccessTest_vmo
|
||||
Pager.DecommitTest
|
||||
Pager.DetachClosePagerTest
|
||||
Pager.DetachPageCompleteTest
|
||||
Pager.EarlySupplyTest_vmar
|
||||
Pager.EarlySupplyTest_vmo
|
||||
Pager.FailAfterDetach
|
||||
Pager.FailErrorCode
|
||||
Pager.FailExactRange
|
||||
Pager.FailMultipleCommits
|
||||
Pager.FailMultipleVmos
|
||||
Pager.FailOverlappingRange
|
||||
Pager.FailRedundant
|
||||
Pager.FailSinglePage_vmar
|
||||
Pager.FailSinglePage_vmo
|
||||
Pager.InvalidPagerCreate
|
||||
Pager.InvalidPagerCreateVmo
|
||||
Pager.InvalidPagerDetachVmo
|
||||
Pager.InvalidPagerOpRange
|
||||
Pager.InvalidPagerSupplyPages
|
||||
Pager.ManyRequestTest_vmar
|
||||
Pager.ManyRequestTest_vmo
|
||||
Pager.MulticommitSupplyTest
|
||||
Pager.MultipleConcurrentVmoTest
|
||||
Pager.MultisupplyCommitTest
|
||||
Pager.OverlapCommitSupplyTest
|
||||
Pager.OverlapCommitTest
|
||||
Pager.OverlapSupplyTest_vmar
|
||||
Pager.OverlapSupplyTest_vmo
|
||||
Pager.PresupplyTest_vmar
|
||||
Pager.PresupplyTest_vmo
|
||||
Pager.ReadCloseInterruptEarlyTest_vmar
|
||||
Pager.ReadCloseInterruptEarlyTest_vmo
|
||||
Pager.ReadCloseInterruptLateTest_vmar
|
||||
Pager.ReadCloseInterruptLateTest_vmo
|
||||
Pager.ReadDetachInterruptEarlyTest_vmar
|
||||
Pager.ReadDetachInterruptEarlyTest_vmo
|
||||
Pager.ReadDetachInterruptLateTest_vmar
|
||||
Pager.ReadDetachInterruptLateTest_vmo
|
||||
Pager.ReadResizeTest_vmar
|
||||
Pager.ReadResizeTest_vmo
|
||||
Pager.ResizeCommitTest
|
||||
Pager.ResizeNonresizableVmo
|
||||
Pager.SequentialMultipageTest_vmar
|
||||
Pager.SequentialMultipageTest_vmo
|
||||
Pager.SimpleCommitTest
|
||||
Pager.SinglePageTest_vmar
|
||||
Pager.SinglePageTest_vmo
|
||||
Pager.SplitCommitTest
|
||||
Pager.SuccessiveVmoTest
|
||||
Pager.SupplyAfterFail
|
||||
Pager.SuspendCommitTest
|
||||
Pager.SuspendReadTest_vmar
|
||||
Pager.SuspendReadTest_vmo
|
||||
Pager.UncommittedSinglePageTest_vmar
|
||||
Pager.UncommittedSinglePageTest_vmo
|
||||
Pager.UncommittedSupply
|
||||
Pager.VmarMapRangeTest
|
||||
Pager.VmarRemapTest
|
||||
Pager.VmarUnmapTest
|
||||
Pager.VmoInfoPagerTest
|
||||
Pager.WritingZeroFork
|
||||
PortStressTest.SignalCloseWait
|
||||
PortStressTest.WaitSignalCancel
|
||||
PortTest.AsyncWaitInvalidOption
|
||||
PortTest.CancelEventKey
|
||||
PortTest.CancelEventKeyAfter
|
||||
PortTest.EventAsyncSignalWaitSingle
|
||||
PortTest.Timestamp
|
||||
ProcessDebugVDSO.WriteToVdsoAddressReturnsAccessDenied
|
||||
ProcessGetInfoTest.InfoHandleBasicZeroSizedFails
|
||||
ProcessGetInfoTest.InfoProcessHandleStats
|
||||
ProcessGetInfoTest.InfoProcessHandleTable
|
||||
ProcessGetInfoTest.InfoProcessHandleTableEmpty
|
||||
ProcessGetInfoTest.InfoProcessHandleTableInsufficientRights
|
||||
ProcessGetInfoTest.InfoProcessHandleTableInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessHandleTableInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessHandleTableNullActualAvailSuceeds
|
||||
ProcessGetInfoTest.InfoProcessHandleTableNullAvailSuceeds
|
||||
ProcessGetInfoTest.InfoProcessHandleTableSelf
|
||||
ProcessGetInfoTest.InfoProcessMapsBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessMapsBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessMapsInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessMapsInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessMapsNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsOnSelfFails
|
||||
ProcessGetInfoTest.InfoProcessMapsPartiallyUnmappedBufferIsInvalidArgs
|
||||
ProcessGetInfoTest.InfoProcessMapsRequiresInspectRights
|
||||
ProcessGetInfoTest.InfoProcessMapsSmallBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessMapsSmokeTest
|
||||
ProcessGetInfoTest.InfoProcessMapsUnstartedSuceeds
|
||||
ProcessGetInfoTest.InfoProcessMapsZeroSizedBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessThreadsBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessThreadsBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessThreadsInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessThreadsNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessThreadsNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoProcessThreadsNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosBadActualgIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessVmosBadAvailIsInvalidArg
|
||||
ProcessGetInfoTest.InfoProcessVmosInvalidBufferPointerFails
|
||||
ProcessGetInfoTest.InfoProcessVmosInvalidHandleFails
|
||||
ProcessGetInfoTest.InfoProcessVmosJobHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoProcessVmosNullActualAndAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosNullActualSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosNullAvailSucceeds
|
||||
ProcessGetInfoTest.InfoProcessVmosPartiallyUnmappedBufferIsInvalidArgs
|
||||
ProcessGetInfoTest.InfoProcessVmosRequiresInspectRights
|
||||
ProcessGetInfoTest.InfoProcessVmosSmallBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessVmosSmokeTest
|
||||
ProcessGetInfoTest.InfoProcessVmosThreadHandleIsBadHandle
|
||||
ProcessGetInfoTest.InfoProcessVmosZeroSizedBufferIsOk
|
||||
ProcessGetInfoTest.InfoProcessZeroSizedBufferFails
|
||||
ProcessTest.CreateAndKillJobRaceStress
|
||||
ProcessTest.ForbidDestroyRootVmar
|
||||
ProcessTest.GetRuntimeNoPermission
|
||||
ProcessTest.GetTaskRuntime
|
||||
ProcessTest.InfoReflectsProcessState
|
||||
ProcessTest.ProcessStartNoHandle
|
||||
ProcessTest.ProcessStartWriteThreadState
|
||||
ProcessTest.Suspend
|
||||
ProcessTest.SuspendBeforeCreatingThreads
|
||||
ProcessTest.SuspendBeforeStartingThreads
|
||||
ProcessTest.SuspendMultipleThreads
|
||||
ProcessTest.SuspendProcessThenThread
|
||||
ProcessTest.SuspendThreadAndProcessBeforeStartingProcess
|
||||
ProcessTest.SuspendThreadThenProcess
|
||||
ProcessTest.SuspendTwice
|
||||
ProcessTest.SuspendTwiceBeforeCreatingThreads
|
||||
ProcessTest.SuspendWithDyingThread
|
||||
ProfileTest.CreateProfileWithDefaultInitializedProfileInfoIsError
|
||||
ProfileTest.CreateProfileWithInvalidHandleIsBadHandle
|
||||
ProfileTest.CreateProfileWithMutuallyExclusiveFlagsIsInvalidArgs
|
||||
ProfileTest.CreateProfileWithNoProfileInfoIsInvalidArgs
|
||||
ProfileTest.CreateProfileWithNullProfileIsInvalidArgs
|
||||
Resource.BasicActions
|
||||
Resource.CreateResourceSlice
|
||||
Resource.ExclusiveShared
|
||||
Resource.InvalidArgs
|
||||
Resource.Ioports
|
||||
Resource.ProbeAddressSpace
|
||||
Resource.SharedExclusive
|
||||
Resource.VmoCreation
|
||||
Resource.VmoCreationSmaller
|
||||
Resource.VmoCreationUnaligned
|
||||
Resource.VmoReplaceAsExecutable
|
||||
SchedulerProfileTest.CreateProfileOnNonRootJobIsAccessDenied
|
||||
SchedulerProfileTest.CreateProfileWithDeadlineBelowCapacityIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithDeadlineIsOk
|
||||
SchedulerProfileTest.CreateProfileWithDefaultPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithHighestPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithHihgPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithLowestPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithLowPriorityIsOk
|
||||
SchedulerProfileTest.CreateProfileWithNonZeroOptionsIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithPeriodBelowDeadlineIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithPriorityBelowLowestIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithPriorityExceedingHighestIsInvalidArgs
|
||||
SchedulerProfileTest.CreateProfileWithZeroCapacityIsInvalidArgs
|
||||
SchedulerProfileTest.SetThreadPriorityIsOk
|
||||
SocketTest.ReadIntoBadBuffer
|
||||
SocketTest.WriteFromBadBuffer
|
||||
SyncMutex.NoRecursion
|
||||
SyncMutex.TimeoutElapsed
|
||||
SystemEvent.CannotSignalMempressureCriticalFromUserspace
|
||||
SystemEvent.CannotSignalMempressureNormalFromUserspace
|
||||
SystemEvent.CannotSignalMempressureWarningFromUserspace
|
||||
SystemEvent.CannotSignalOomFromUserspace
|
||||
SystemEvent.ExactlyOneMemoryEventSignaled
|
||||
SystemEvent.RetreiveMempressureWarning
|
||||
SystemEvent.RetrieveMempressureCritical
|
||||
SystemEvent.RetrieveMempressureNormal
|
||||
SystemEvent.RetrieveOom
|
||||
TaskGetInfoTest.InfoTaskRuntimeInvalidHandle
|
||||
TaskGetInfoTest.InfoTaskStatsZeroSizedBufferIsTooSmall
|
||||
ThreadGetInfoTest.InfoHandleBasicZeroSizedBufferFails
|
||||
ThreadGetInfoTest.InfoHandleCountZeroSizedBufferFails
|
||||
ThreadGetInfoTest.InfoThreadStatsBadActualgIsInvalidArg
|
||||
ThreadGetInfoTest.InfoThreadStatsBadAvailIsInvalidArg
|
||||
ThreadGetInfoTest.InfoThreadStatsInvalidBufferPointerFails
|
||||
ThreadGetInfoTest.InfoThreadStatsInvalidHandleFails
|
||||
ThreadGetInfoTest.InfoThreadStatsNullActualAndAvailSucceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsNullActualSucceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsNullAvailSucceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsOnSelfSuceeds
|
||||
ThreadGetInfoTest.InfoThreadStatsZeroSizedBufferFails
|
||||
ThreadGetInfoTest.InfoThreadZeroSizedBufferFails
|
||||
Threads.DebugRegistersValidation
|
||||
Threads.GetAffinity
|
||||
Threads.GetInfoRuntime
|
||||
Threads.GetLastScheduledCpu
|
||||
Threads.KillSuspendedThread
|
||||
Threads.NoncanonicalRipAddressIRETQ
|
||||
Threads.NoncanonicalRipAddressSyscall
|
||||
Threads.ReadingFpRegisterState
|
||||
Threads.ReadingGeneralRegisterState
|
||||
Threads.ReadingVectorRegisterState
|
||||
Threads.StartSuspendedAndResumedThread
|
||||
Threads.StartSuspendedThread
|
||||
Threads.SuspendMultiple
|
||||
Threads.SuspendRepeatingWaitAsyncSignalDelivery
|
||||
Threads.SuspendSingleWaitAsyncSignalDelivery
|
||||
Threads.SuspendSleeping
|
||||
Threads.SuspendStopsThread
|
||||
Threads.ThreadLocalRegisterState
|
||||
Threads.ThreadStartWithZeroInstructionPointer
|
||||
Threads.WriteReadDebugRegisterState
|
||||
Threads.WriteThreadStateWithInvalidMxcsrIsInvalidArgs
|
||||
Threads.WritingFpRegisterState
|
||||
Threads.WritingGeneralRegisterState
|
||||
Threads.WritingSingleStepState
|
||||
Threads.WritingVectorRegisterState
|
||||
Threads.WritingVectorRegisterState_UnsupportedFieldsIgnored
|
||||
Threads.X86AcFlagUserCopy
|
||||
Vmar.AlignmentVmarAllocateTest
|
||||
Vmar.AlignmentVmarMapTest
|
||||
VmarGetInfoTest.InfoHandleBasicZeroSizedBufferFails
|
||||
VmarGetInfoTest.InfoVmarZeroSizedBufferFails
|
||||
Vmar.InvalidArgsTest
|
||||
Vmar.MapInUppderLimitTest
|
||||
Vmar.MapSpecificOverwriteTest
|
||||
Vmar.NestedRegionPermsTest
|
||||
Vmar.OvermappingTest
|
||||
Vmar.ProtectLargeUncomittedTest
|
||||
Vmar.ProtectOverDemandPagedTest
|
||||
Vmar.RangeOpCommitVmoPages
|
||||
Vmar.UnmapLargeUncommittedTest
|
||||
VmoClone2TestCase.ForbidContiguousVmo
|
||||
VmoClone2TestCase.ManyCloneMappingOffset
|
||||
VmoClone2TestCase.NoPhysical
|
||||
VmoClone2TestCase.NoSnapshotPager
|
||||
VmoClone2TestCase.ParentVmarWrite
|
||||
VmoCloneTestCase.Commit
|
||||
VmoCloneTestCase.ManyCloneMappingOffset
|
||||
VmoCloneTestCase.NoPhysical
|
||||
VmoCloneTestCase.NoSnapshotPager
|
||||
VmoSliceTestCase.ChildSliceOfContiguousParentIsContiguous
|
||||
VmoSliceTestCase.Pin
|
||||
VmoSliceTestCase.RoundUpSizePhysical
|
||||
VmoTestCase.Cache
|
||||
VmoTestCase.CacheFlush
|
||||
VmoTestCase.CacheOp
|
||||
VmoTestCase.Commit
|
||||
VmoTestCase.CompressedContiguous
|
||||
VmoTestCase.DecommitMisaligned
|
||||
VmoTestCase.Info
|
||||
VmoTestCase.NoPermMap
|
||||
VmoTestCase.NoPermProtect
|
||||
VmoTestCase.PhysicalSlice
|
||||
VmoTestCase.ReadOnlyMap
|
||||
VmoTestCase.ResizeHazard
|
||||
VmoTestCase.Rights
|
||||
VmoTestCase.UncachedContiguous
|
||||
VmoZeroTestCase.Contiguous
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
*
|
||||
-Bti.NoDelayedUnpin
|
||||
-Bti.DecommitRace
|
||||
-ProcessDebugVDSO.*
|
||||
-HandleCloseTest.ManyDuplicateTest*
|
||||
-JobTest.*
|
||||
-JobGetInfoTest.InfoJobProcessesPartiallyUnmappedBufferIsInvalidArgs
|
||||
-JobGetInfoTest.InfoJobChildrenPartiallyUnmappedBufferIsInvalidArgs
|
||||
-PortTest.AsyncWaitInvalidOption
|
||||
-PortTest.Timestamp
|
||||
-PortStressTest.WaitSignalCancel
|
||||
-PortStressTest.SignalCloseWait
|
||||
-ProcessTest.ProcessWaitAsyncCancelSelf
|
||||
-Pthread.*
|
||||
-PThreadBarrierTest.SingleThreadWinsBarrierObjectResetsBetweenIterations
|
||||
-SyncMutex.NoRecursion
|
||||
-Threads.Reading*State
|
||||
-Threads.DebugRegistersValidation
|
||||
-Threads.NoncanonicalRipAddressIRETQ
|
||||
-Threads.StartSuspendedThread
|
||||
-Threads.X86AcFlagUserCopy
|
||||
-Vmar.ProtectOverDemandPagedTest
|
||||
-Vmar.ProtectLargeUncomittedTest
|
||||
-Vmar.UnmapLargeUncommittedTest
|
||||
-Vmar.NestedRegionPermsTest
|
||||
-Vmar.MapSpecificOverwriteTest
|
||||
-Vmar.MapOverDestroyedTest
|
||||
-MemoryMappingTest.MprotectTest
|
||||
-MemoryMappingTest.MmapProtExecTest
|
||||
-MemoryMappingTest.MmapProtTest
|
||||
-VmoTestCase.ReadOnlyMap
|
||||
-VmoTestCase.MapRead
|
||||
-VmoTestCase.ParallelRead
|
||||
-VmoTestCase.NoPermMap
|
||||
-VmoTestCase.NoPermProtect
|
||||
-VmoTestCase.Commit
|
||||
-VmoTestCase.CacheOp
|
||||
-VmoTestCase.ResizeHazard
|
||||
-VmoTestCase.Cache*
|
||||
-VmoTestCase.ZeroPage
|
||||
-VmoTestCase.PinTests
|
||||
-VmoCloneTestCase.Commit
|
||||
-VmoClone2TestCase.PinClonePages
|
||||
-SocketTest.ReadIntoBadBuffer
|
||||
-SocketTest.WriteFromBadBuffer
|
||||
-VersionTest.*
|
||||
-BadAccessTest.*
|
||||
-InterruptTest.BindTriggeredIrqToPort
|
||||
-InterruptTest.WaitThreadFunctionsAfterSuspendResume
|
||||
-*Profile*
|
||||
-SystemEvent.*
|
||||
-Resource.*
|
||||
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 2a957e7accc358c0c84327095deca0b0a76b6867
|
||||
|
|
@ -16,15 +16,30 @@ doc = false
|
|||
|
||||
[features]
|
||||
default = ["libos"]
|
||||
|
||||
# Print colorless logs
|
||||
colorless-log = []
|
||||
|
||||
# Enable graphical output
|
||||
graphic = ["kernel-hal/graphic"]
|
||||
|
||||
# Directly link the user image to the kernel image
|
||||
link-user-img = []
|
||||
|
||||
# For bare-metal testing, if kernel panic or the root process is finished,
|
||||
# shutdown the machine and exit QEMU.
|
||||
baremetal-test = []
|
||||
|
||||
# Run as Zircon mode
|
||||
zircon = ["zcore-loader/zircon"]
|
||||
# Run as Linux mode
|
||||
linux = ["zcore-loader/linux", "linux-object", "rcore-fs", "rcore-fs-sfs"]
|
||||
|
||||
# Run as LibOS
|
||||
libos = ["kernel-hal/libos", "zcore-loader/libos", "async-std", "chrono", "rcore-fs-hostfs"]
|
||||
# Run on QEMU
|
||||
board-qemu = []
|
||||
# Run on Allwinner d1 (riscv only)
|
||||
board-d1 = ["link-user-img"]
|
||||
|
||||
[dependencies]
|
||||
|
|
@ -50,10 +65,10 @@ rcore-fs-hostfs = { git = "https://github.com/rcore-os/rcore-fs", rev = "7c232ec
|
|||
# Bare-metal mode
|
||||
[target.'cfg(target_os = "none")'.dependencies]
|
||||
buddy_system_allocator = "0.7"
|
||||
# executor = { git = "https://github.com/rcore-os/executor.git", rev = "04b6b7b" }
|
||||
# executor = { git = "https://github.com/rcore-os/executor.git", rev = "85b9335" }
|
||||
executor = { path = "../../../ASYNC/PreemptiveScheduler" }
|
||||
|
||||
# Bare-metal mode on x86_64
|
||||
[target.'cfg(all(target_os = "none", target_arch = "x86_64"))'.dependencies]
|
||||
rboot = { git = "https://github.com/rcore-os/rboot.git", rev = "39d6e24", default-features = false }
|
||||
# rvm = { git = "https://github.com/rcore-os/RVM", rev = "e91d625", optional = true }
|
||||
# rvm = { git = "https://github.com/rcore-os/RVM", rev = "e91d625", optional = true }
|
||||
|
|
@ -6,13 +6,14 @@ MODE ?= release
|
|||
LOG ?= debug
|
||||
LINUX ?= 1
|
||||
LIBOS ?=
|
||||
TEST ?=
|
||||
GRAPHIC ?=
|
||||
DISK ?=
|
||||
HYPERVISOR ?=
|
||||
V ?=
|
||||
|
||||
USER ?=
|
||||
ZBI ?= bringup
|
||||
CMDLINE ?=
|
||||
|
||||
SMP ?= 1
|
||||
ACCEL ?=
|
||||
|
|
@ -20,6 +21,12 @@ ACCEL ?=
|
|||
OBJDUMP ?= rust-objdump --print-imm-hex --x86-asm-syntax=intel
|
||||
OBJCOPY ?= rust-objcopy --binary-architecture=$(ARCH)
|
||||
|
||||
ifeq ($(LINUX), 1)
|
||||
CMDLINE ?= LOG=$(LOG)
|
||||
else
|
||||
CMDLINE ?= LOG=$(LOG):TERM=xterm-256color:console.shell=true:virtcon.disable=true
|
||||
endif
|
||||
|
||||
ifeq ($(LINUX), 1)
|
||||
user_img := $(ARCH).img
|
||||
else ifeq ($(USER), 1)
|
||||
|
|
@ -89,6 +96,10 @@ else
|
|||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(TEST), 1)
|
||||
features += baremetal-test
|
||||
endif
|
||||
|
||||
ifeq ($(GRAPHIC), on)
|
||||
features += graphic
|
||||
else ifeq ($(MAKECMDGOALS), vbox)
|
||||
|
|
@ -121,32 +132,33 @@ endif
|
|||
qemu_opts := -smp $(SMP)
|
||||
|
||||
ifeq ($(ARCH), x86_64)
|
||||
baremetal-test-qemu_opts := \
|
||||
qemu_opts += \
|
||||
-machine q35 \
|
||||
-cpu Haswell,+smap,-check,-fsgsbase \
|
||||
-m 4G \
|
||||
-m 1G \
|
||||
-serial mon:stdio \
|
||||
-drive format=raw,if=pflash,readonly=on,file=$(ovmf) \
|
||||
-drive format=raw,file=fat:rw:$(esp) \
|
||||
-device ich9-ahci,id=ahci \
|
||||
-device isa-debug-exit,iobase=0xf4,iosize=0x04 \
|
||||
-nic none
|
||||
qemu_opts += $(baremetal-test-qemu_opts) \
|
||||
-drive format=qcow2,id=userdisk,if=none,file=$(qemu_disk) \
|
||||
-device ide-hd,bus=ahci.0,drive=userdisk
|
||||
else ifeq ($(ARCH), riscv64)
|
||||
qemu_opts += \
|
||||
-machine virt \
|
||||
-bios default \
|
||||
-m 512M \
|
||||
-no-reboot \
|
||||
-no-shutdown \
|
||||
-serial mon:stdio \
|
||||
-drive format=qcow2,id=userdisk,file=$(qemu_disk) \
|
||||
-device virtio-blk-device,drive=userdisk \
|
||||
-kernel $(kernel_img) \
|
||||
-initrd $(USER_IMG) \
|
||||
-append "LOG=$(LOG)"
|
||||
-append "$(CMDLINE)"
|
||||
endif
|
||||
|
||||
ifeq ($(DISK), on)
|
||||
ifeq ($(ARCH), x86_64)
|
||||
qemu_opts += -device ide-hd,bus=ahci.0,drive=userdisk
|
||||
else ifeq ($(ARCH), riscv64)
|
||||
qemu_opts += -device virtio-blk-device,drive=userdisk
|
||||
endif
|
||||
qemu_opts += -drive format=qcow2,id=userdisk,if=none,file=$(qemu_disk)
|
||||
endif
|
||||
|
||||
ifeq ($(GRAPHIC), on)
|
||||
|
|
@ -160,7 +172,6 @@ ifeq ($(GRAPHIC), on)
|
|||
endif
|
||||
else
|
||||
qemu_opts += -display none -nographic
|
||||
baremetal-test-qemu_opts += -display none -nographic
|
||||
endif
|
||||
|
||||
ifeq ($(ACCEL), 1)
|
||||
|
|
@ -193,6 +204,10 @@ endif
|
|||
|
||||
.PHONY: justrun
|
||||
justrun: $(qemu_disk)
|
||||
ifeq ($(ARCH), x86_64)
|
||||
$(sed) 's#initramfs=.*#initramfs=\\EFI\\zCore\\$(notdir $(user_img))#' $(esp)/EFI/Boot/rboot.conf
|
||||
$(sed) 's#cmdline=.*#cmdline=$(CMDLINE)#' $(esp)/EFI/Boot/rboot.conf
|
||||
endif
|
||||
$(qemu) $(qemu_opts)
|
||||
|
||||
.PHONY: debugrun
|
||||
|
|
@ -204,7 +219,7 @@ debugrun: $(qemu_disk)
|
|||
.PHONY: kernel
|
||||
kernel:
|
||||
@echo Building zCore kenel
|
||||
cargo build $(build_args)
|
||||
SMP=$(SMP) cargo build $(build_args)
|
||||
|
||||
.PHONY: disasm
|
||||
disasm:
|
||||
|
|
@ -216,7 +231,7 @@ header:
|
|||
|
||||
.PHONY: clippy
|
||||
clippy:
|
||||
cargo clippy $(build_args)
|
||||
SMP=$(SMP) cargo clippy $(build_args)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
|
@ -238,12 +253,6 @@ ifeq ($(ARCH), x86_64)
|
|||
cp rboot.conf $(esp)/EFI/Boot/rboot.conf
|
||||
cp $(kernel_elf) $(esp)/EFI/zCore/zcore.elf
|
||||
cp $(user_img) $(esp)/EFI/zCore/
|
||||
$(sed) "s/fuchsia.zbi/$(notdir $(user_img))/" $(esp)/EFI/Boot/rboot.conf
|
||||
ifneq ($(CMDLINE),)
|
||||
$(sed) "s#cmdline=.*#cmdline=$(CMDLINE)#" $(esp)/EFI/Boot/rboot.conf
|
||||
else
|
||||
$(sed) "s/LOG=warn/LOG=$(LOG)/" $(esp)/EFI/Boot/rboot.conf
|
||||
endif
|
||||
else ifeq ($(ARCH), riscv64)
|
||||
$(OBJCOPY) $(kernel_elf) --strip-all -O binary $@
|
||||
endif
|
||||
|
|
@ -266,21 +275,6 @@ image:
|
|||
hdiutil create -fs fat32 -ov -volname EFI -format UDTO -srcfolder $(esp) $(build_path)/zcore.cdr
|
||||
qemu-img convert -f raw $(build_path)/zcore.cdr -O qcow2 $(build_path)/zcore.qcow2
|
||||
|
||||
################ Tests ################
|
||||
|
||||
.PHONY: baremetal-qemu-disk
|
||||
baremetal-qemu-disk:
|
||||
@qemu-img create -f qcow2 $(build_path)/disk.qcow2 100M
|
||||
|
||||
.PHONY: baremetal-test
|
||||
baremetal-test:
|
||||
cp rboot.conf $(esp)/EFI/Boot/rboot.conf
|
||||
timeout --foreground 8s $(qemu) $(baremetal-test-qemu_opts)
|
||||
|
||||
.PHONY: baremetal-test-rv64
|
||||
baremetal-test-rv64: build $(qemu_disk)
|
||||
timeout --foreground 8s $(qemu) $(qemu_opts) -append ROOTPROC=$(ROOTPROC)
|
||||
|
||||
################ Deprecated ################
|
||||
|
||||
VMDISK := $(build_path)/boot.vdi
|
||||
|
|
|
|||
|
|
@ -3,15 +3,19 @@
|
|||
use core::alloc::Layout;
|
||||
use core::panic::PanicInfo;
|
||||
use log::*;
|
||||
//use zircon_object::util::kcounter::KCounterDescriptorArray;
|
||||
|
||||
#[panic_handler]
|
||||
fn panic(info: &PanicInfo) -> ! {
|
||||
println!("\n\npanic cpu={}", kernel_hal::cpu::cpu_id());
|
||||
println!("\n\n{}", info);
|
||||
error!("\n\n{}", info);
|
||||
//error!("{:#?}", KCounterDescriptorArray::get());
|
||||
loop {
|
||||
core::hint::spin_loop();
|
||||
|
||||
if cfg!(feature = "baremetal-test") {
|
||||
kernel_hal::cpu::reset();
|
||||
} else {
|
||||
loop {
|
||||
core::hint::spin_loop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
#![no_main]
|
||||
#![cfg_attr(not(feature = "libos"), no_std)]
|
||||
#![feature(lang_items)]
|
||||
#![deny(warnings)] // comment this on develop
|
||||
#![feature(core_intrinsics)]
|
||||
// #![deny(warnings)] // comment this on develop
|
||||
|
||||
use core::sync::atomic::{AtomicBool, Ordering};
|
||||
|
||||
extern crate alloc;
|
||||
#[macro_use]
|
||||
|
|
@ -21,6 +24,8 @@ mod memory;
|
|||
mod platform;
|
||||
mod utils;
|
||||
|
||||
static STARTED: AtomicBool = AtomicBool::new(false);
|
||||
|
||||
fn primary_main(config: kernel_hal::KernelConfig) {
|
||||
logging::init();
|
||||
memory::init_heap();
|
||||
|
|
@ -29,9 +34,9 @@ fn primary_main(config: kernel_hal::KernelConfig) {
|
|||
let options = utils::boot_options();
|
||||
logging::set_max_level(&options.log_level);
|
||||
info!("Boot options: {:#?}", options);
|
||||
|
||||
memory::init_frame_allocator(&kernel_hal::mem::free_pmem_regions());
|
||||
kernel_hal::primary_init();
|
||||
STARTED.store(true, Ordering::SeqCst);
|
||||
|
||||
kernel_hal::interrupt::intr_on();
|
||||
info!("wait for time interrupt");
|
||||
|
|
@ -41,6 +46,7 @@ fn primary_main(config: kernel_hal::KernelConfig) {
|
|||
if #[cfg(all(feature = "linux", feature = "zircon"))] {
|
||||
panic!("Feature `linux` and `zircon` cannot be enabled at the same time!");
|
||||
} else if #[cfg(feature = "linux")] {
|
||||
log::info!("run prog");
|
||||
let args = options.root_proc.split('?').map(Into::into).collect(); // parse "arg0?arg1?arg2"
|
||||
let envs = alloc::vec!["PATH=/usr/sbin:/usr/bin:/sbin:/bin".into()];
|
||||
let rootfs = fs::rootfs();
|
||||
|
|
@ -57,7 +63,15 @@ fn primary_main(config: kernel_hal::KernelConfig) {
|
|||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
#[cfg(not(feature = "libos"))]
|
||||
fn secondary_main() -> ! {
|
||||
while !STARTED.load(Ordering::SeqCst) {}
|
||||
// Don't print anything between previous line and next line.
|
||||
// Boot hart has initialized the UART chip, so we will use
|
||||
// UART for output instead of SBI, but the current HART is
|
||||
// not mapped to UART MMIO, which means we can't output
|
||||
// until secondary_init is complete.
|
||||
kernel_hal::secondary_init();
|
||||
log::info!("hart{} inited", kernel_hal::cpu::cpu_id());
|
||||
utils::wait_for_exit(None)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,20 +6,33 @@ _start:
|
|||
|
||||
#关闭mmu
|
||||
#csrw satp, zero
|
||||
|
||||
#BSS节清零
|
||||
la t0, sbss
|
||||
la t1, ebss
|
||||
bgeu t0, t1, 2f
|
||||
bgeu t0, t1, secondary_hart_start
|
||||
|
||||
1:
|
||||
clear_bss_loop:
|
||||
# sd: store double word (64 bits)
|
||||
sd zero, (t0)
|
||||
addi t0, t0, 8
|
||||
bltu t0, t1, 1b
|
||||
|
||||
2:
|
||||
bltu t0, t1, clear_bss_loop
|
||||
|
||||
primary_hart:
|
||||
call init_vm
|
||||
lui t0, %hi(primary_rust_main)
|
||||
addi t0, t0, %lo(primary_rust_main)
|
||||
jr t0
|
||||
|
||||
|
||||
.globl secondary_hart_start
|
||||
secondary_hart_start:
|
||||
csrw sie, zero
|
||||
call init_vm
|
||||
lui t0, %hi(secondary_rust_main)
|
||||
addi t0, t0, %lo(secondary_rust_main)
|
||||
jr t0
|
||||
|
||||
init_vm:
|
||||
#la sp, bootstacktop
|
||||
#call rust_main
|
||||
|
||||
|
|
@ -42,18 +55,18 @@ _start:
|
|||
#刷新TLB
|
||||
sfence.vma
|
||||
|
||||
|
||||
li t0, 4096 * 16
|
||||
mul t0, t0, a0
|
||||
#此时在虚拟内存空间,设置sp为虚拟地址
|
||||
lui sp, %hi(bootstacktop)
|
||||
lui t0, %hi(rust_main)
|
||||
addi t0, t0, %lo(rust_main)
|
||||
jr t0
|
||||
sub sp, sp, t0
|
||||
ret
|
||||
|
||||
.section .bss.stack
|
||||
.align 12
|
||||
.global bootstack
|
||||
bootstack:
|
||||
.space 4096 * 32
|
||||
.space 4096 * 160
|
||||
.global bootstacktop
|
||||
bootstacktop:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,25 +1,76 @@
|
|||
use core::arch::global_asm;
|
||||
|
||||
#[cfg(feature = "board-qemu")]
|
||||
global_asm!(include_str!("boot/boot_qemu.asm"));
|
||||
#[cfg(feature = "board-d1")]
|
||||
global_asm!(include_str!("boot/boot_d1.asm"));
|
||||
global_asm!(
|
||||
include_str!("boot/boot_qemu.asm"),
|
||||
include_str!("boot/entry64.asm"),
|
||||
);
|
||||
|
||||
global_asm!(include_str!("boot/entry64.asm"));
|
||||
#[cfg(feature = "board-d1")]
|
||||
global_asm!(
|
||||
include_str!("boot/boot_d1.asm"),
|
||||
include_str!("boot/entry64.asm"),
|
||||
);
|
||||
|
||||
use super::consts::*;
|
||||
use core::arch::{asm, global_asm};
|
||||
use core::str::FromStr;
|
||||
use kernel_hal::arch::sbi::{hart_start, send_ipi, SBI_SUCCESS};
|
||||
use kernel_hal::KernelConfig;
|
||||
const SMP: &str = core::env!("SMP"); // Get HART number from the environment variable
|
||||
|
||||
extern "C" {
|
||||
fn secondary_hart_start();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn rust_main(hartid: usize, device_tree_paddr: usize) -> ! {
|
||||
println!(
|
||||
"zCore rust_main(hartid: {}, device_tree_paddr: {:#x})",
|
||||
hartid, device_tree_paddr
|
||||
);
|
||||
pub extern "C" fn primary_rust_main(hartid: usize, device_tree_paddr: usize) -> ! {
|
||||
unsafe {
|
||||
asm!("mv tp, {0}", in(reg) hartid);
|
||||
let mut sstatus: usize;
|
||||
asm!("csrr {0}, sstatus", out(reg) sstatus);
|
||||
sstatus |= 1 << 18;
|
||||
asm!("csrw sstatus, {0}", in(reg) sstatus);
|
||||
println!(
|
||||
"boot hart: zCore rust_main(hartid: {}, device_tree_paddr: {:#x}) sstatus={:x}",
|
||||
hartid, device_tree_paddr, sstatus
|
||||
);
|
||||
};
|
||||
|
||||
let config = KernelConfig {
|
||||
phys_to_virt_offset: PHYSICAL_MEMORY_OFFSET,
|
||||
dtb_paddr: device_tree_paddr,
|
||||
};
|
||||
for id in 0..usize::from_str(SMP).expect("can't parse SMP as usize.") {
|
||||
if id != hartid {
|
||||
let err_code = hart_start(
|
||||
id,
|
||||
secondary_hart_start as usize - PHYSICAL_MEMORY_OFFSET, // cal physical address
|
||||
0,
|
||||
);
|
||||
if err_code != SBI_SUCCESS {
|
||||
panic!("start hart{} failed. error code={}", id, err_code);
|
||||
}
|
||||
let hart_mask: usize = 1 << id;
|
||||
let err_code = send_ipi(&hart_mask as *const _ as usize);
|
||||
if err_code != SBI_SUCCESS {
|
||||
panic!("send ipi to hart{} failed. error code={}", id, err_code);
|
||||
}
|
||||
}
|
||||
}
|
||||
crate::primary_main(config);
|
||||
unreachable!()
|
||||
}
|
||||
|
||||
// Don't print in this function and use console_write_early if necessary
|
||||
#[no_mangle]
|
||||
pub extern "C" fn secondary_rust_main(hartid: usize) -> ! {
|
||||
unsafe {
|
||||
asm!("mv tp, {0}", in(reg) hartid);
|
||||
let mut sstatus: usize;
|
||||
asm!("csrr {0}, sstatus", out(reg) sstatus);
|
||||
sstatus |= 1 << 18; // set SUM=1
|
||||
asm!("csrw sstatus, {0}", in(reg) sstatus);
|
||||
};
|
||||
crate::secondary_main();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#![allow(unused_variables)]
|
||||
|
||||
use alloc::{collections::BTreeMap, string::String, sync::Arc};
|
||||
use zircon_object::object::KernelObject;
|
||||
use zircon_object::task::Process;
|
||||
|
||||
#[derive(Debug)]
|
||||
|
|
@ -38,11 +39,13 @@ pub fn boot_options() -> BootOptions {
|
|||
std::process::exit(-1);
|
||||
}
|
||||
|
||||
let log_level = std::env::var("LOG").unwrap_or_default();
|
||||
let cmdline = if cfg!(feature = "zircon") {
|
||||
args.get(2).cloned().unwrap_or_default()
|
||||
let (cmdline, log_level) = if cfg!(feature = "zircon") {
|
||||
let cmdline = args.get(2).cloned().unwrap_or_default();
|
||||
let options = parse_cmdline(&cmdline);
|
||||
let log_level = String::from(*options.get("LOG").unwrap_or(&""));
|
||||
(cmdline, log_level)
|
||||
} else {
|
||||
String::new()
|
||||
(String::new(), std::env::var("LOG").unwrap_or_default())
|
||||
};
|
||||
BootOptions {
|
||||
cmdline,
|
||||
|
|
@ -63,26 +66,38 @@ pub fn boot_options() -> BootOptions {
|
|||
}
|
||||
}
|
||||
|
||||
fn check_exit_code(proc: Arc<Process>) -> i32 {
|
||||
let code = proc.exit_code().unwrap_or(-1);
|
||||
if code != 0 {
|
||||
error!(
|
||||
"process {:?}({}) exited with code {:?}",
|
||||
proc.name(),
|
||||
proc.id(),
|
||||
code
|
||||
);
|
||||
} else {
|
||||
info!(
|
||||
"process {:?}({}) exited with code 0",
|
||||
proc.name(),
|
||||
proc.id()
|
||||
)
|
||||
}
|
||||
code as i32
|
||||
}
|
||||
|
||||
#[cfg(feature = "libos")]
|
||||
pub fn wait_for_exit(proc: Option<Arc<Process>>) -> ! {
|
||||
#[cfg(feature = "libos")]
|
||||
if let Some(proc) = proc {
|
||||
let exit_code = if let Some(proc) = proc {
|
||||
let future = async move {
|
||||
use zircon_object::object::{KernelObject, Signal};
|
||||
use zircon_object::object::Signal;
|
||||
let object: Arc<dyn KernelObject> = proc.clone();
|
||||
let signal = if cfg!(feature = "zircon") {
|
||||
Signal::USER_SIGNAL_0
|
||||
} else {
|
||||
let signal = if cfg!(any(feature = "linux", feature = "baremetal-test")) {
|
||||
Signal::PROCESS_TERMINATED
|
||||
} else {
|
||||
Signal::USER_SIGNAL_0
|
||||
};
|
||||
object.wait_signal(signal).await;
|
||||
let code = proc.exit_code().unwrap_or(-1);
|
||||
info!(
|
||||
"process {:?}({}) exited with code {:?}",
|
||||
proc.name(),
|
||||
proc.id(),
|
||||
code
|
||||
);
|
||||
code
|
||||
check_exit_code(proc)
|
||||
};
|
||||
|
||||
// If the graphic mode is on, run the process in another thread.
|
||||
|
|
@ -93,12 +108,22 @@ pub fn wait_for_exit(proc: Option<Arc<Process>>) -> ! {
|
|||
handle
|
||||
};
|
||||
|
||||
let code = async_std::task::block_on(future);
|
||||
std::process::exit(code as i32);
|
||||
}
|
||||
async_std::task::block_on(future)
|
||||
} else {
|
||||
warn!("No process to run, exit!");
|
||||
0
|
||||
};
|
||||
std::process::exit(exit_code);
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "libos"))]
|
||||
pub fn wait_for_exit(proc: Option<Arc<Process>>) -> ! {
|
||||
loop {
|
||||
#[cfg(not(feature = "libos"))]
|
||||
executor::run_until_idle();
|
||||
// kernel_hal::interrupt::wait_for_interrupt();
|
||||
let has_task = executor::run_until_idle();
|
||||
if cfg!(feature = "baremetal-test") && !has_task {
|
||||
proc.map(check_exit_code);
|
||||
kernel_hal::cpu::reset();
|
||||
}
|
||||
kernel_hal::interrupt::wait_for_interrupt();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ pub fn pci_bdf_raw_addr(bus: u8, dev: u8, func: u8, offset: u8) -> u32 {
|
|||
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(all(target_arch = "x86_64", target_os = "none"))] {
|
||||
use kernel_hal::x86_64::{pio_read, pio_write};
|
||||
// use spin::Mutex;
|
||||
use kernel_hal::x86_64::{Io, Pio};
|
||||
// use spin::Mutex;
|
||||
use lock::mutex::Mutex;
|
||||
|
||||
static PIO_LOCK: Mutex<()> = Mutex::new(());
|
||||
|
|
@ -22,30 +22,36 @@ use lock::mutex::Mutex;
|
|||
const PCI_CONFIG_ENABLE: u32 = 1 << 31;
|
||||
|
||||
pub fn pio_config_read_addr(addr: u32, width: usize) -> ZxResult<u32> {
|
||||
let mut port_cfg = Pio::<u32>::new(PCI_CONFIG_ADDR);
|
||||
let port_data = Pio::<u32>::new(PCI_CONFIG_DATA);
|
||||
|
||||
let _lock = PIO_LOCK.lock();
|
||||
let shift = ((addr & 0x3) << 3) as usize;
|
||||
if shift + width > 32 {
|
||||
return Err(ZxError::INVALID_ARGS);
|
||||
}
|
||||
pio_write(PCI_CONFIG_ADDR, (addr & !0x3) | PCI_CONFIG_ENABLE);
|
||||
let tmp_val = u32::from_le(pio_read(PCI_CONFIG_DATA));
|
||||
port_cfg.write((addr & !0x3) | PCI_CONFIG_ENABLE);
|
||||
let tmp_val = u32::from_le(port_data.read());
|
||||
Ok((tmp_val >> shift) & (((1u64 << width) - 1) as u32))
|
||||
}
|
||||
pub fn pio_config_write_addr(addr: u32, val: u32, width: usize) -> ZxResult {
|
||||
let mut port_cfg = Pio::<u32>::new(PCI_CONFIG_ADDR);
|
||||
let mut port_data = Pio::<u32>::new(PCI_CONFIG_DATA);
|
||||
|
||||
let _lock = PIO_LOCK.lock();
|
||||
let shift = ((addr & 0x3) << 3) as usize;
|
||||
if shift + width > 32 {
|
||||
return Err(ZxError::INVALID_ARGS);
|
||||
}
|
||||
pio_write(PCI_CONFIG_ADDR, (addr & !0x3) | PCI_CONFIG_ENABLE);
|
||||
port_cfg.write((addr & !0x3) | PCI_CONFIG_ENABLE);
|
||||
let width_mask = ((1u64 << width) - 1) as u32;
|
||||
let val = val & width_mask;
|
||||
let tmp_val = if width < 32 {
|
||||
(u32::from_le(pio_read(PCI_CONFIG_DATA)) & !(width_mask << shift)) | (val << shift)
|
||||
(u32::from_le(port_data.read()) & !(width_mask << shift)) | (val << shift)
|
||||
} else {
|
||||
val
|
||||
};
|
||||
pio_write(PCI_CONFIG_DATA, u32::to_le(tmp_val));
|
||||
port_data.write(u32::to_le(tmp_val));
|
||||
Ok(())
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ use {
|
|||
alloc::{sync::Arc, vec, vec::Vec},
|
||||
bitflags::bitflags,
|
||||
kernel_hal::vm::{
|
||||
GenericPageTable, IgnoreNotMappedErr, Page, PageSize, PageTable, PagingError,
|
||||
GenericPageTable, IgnoreNotMappedErr, Page, PageSize, PageTable, PagingError, PagingResult,
|
||||
},
|
||||
lock::mutex::Mutex, //spin::Mutex,
|
||||
};
|
||||
|
|
@ -402,6 +402,22 @@ impl VmAddressRegion {
|
|||
!self.is_dead()
|
||||
}
|
||||
|
||||
/// get flags of vaddr
|
||||
pub fn get_vaddr_flags(&self, vaddr: usize) -> PagingResult<MMUFlags> {
|
||||
let guard = self.inner.lock();
|
||||
let inner = guard.as_ref().unwrap();
|
||||
if !self.contains(vaddr) {
|
||||
return Err(PagingError::NoMemory);
|
||||
}
|
||||
if let Some(child) = inner.children.iter().find(|ch| ch.contains(vaddr)) {
|
||||
return child.get_vaddr_flags(vaddr);
|
||||
}
|
||||
if let Some(mapping) = inner.mappings.iter().find(|map| map.contains(vaddr)) {
|
||||
return mapping.query_vaddr(vaddr).map(|(_, flags, _)| flags);
|
||||
}
|
||||
Err(PagingError::NoMemory)
|
||||
}
|
||||
|
||||
/// Determine final address with given input `offset` and `len`.
|
||||
fn determine_offset(
|
||||
&self,
|
||||
|
|
@ -482,7 +498,8 @@ impl VmAddressRegion {
|
|||
self.overlap(begin, end) && !self.within(begin, end)
|
||||
}
|
||||
|
||||
fn contains(&self, vaddr: VirtAddr) -> bool {
|
||||
/// return true if vmar contains vaddr, or return false.
|
||||
pub fn contains(&self, vaddr: VirtAddr) -> bool {
|
||||
self.addr <= vaddr && vaddr < self.end_addr()
|
||||
}
|
||||
|
||||
|
|
@ -895,6 +912,11 @@ impl VmMapping {
|
|||
}
|
||||
}
|
||||
|
||||
/// query vaddr's PhysAddr, PhysAddr, PageSize.
|
||||
pub fn query_vaddr(&self, vaddr: usize) -> PagingResult<(PhysAddr, MMUFlags, PageSize)> {
|
||||
self.page_table.lock().query(vaddr)
|
||||
}
|
||||
|
||||
/// Remove WRITE flag from the mappings for Copy-on-Write.
|
||||
pub(super) fn range_change(&self, offset: usize, len: usize, op: RangeChangeOp) {
|
||||
let inner = self.inner.try_lock();
|
||||
|
|
|
|||
|
|
@ -291,7 +291,7 @@ impl Syscall<'_> {
|
|||
info_ptr.write(job.get_info())?;
|
||||
}
|
||||
Topic::ProcessVmos => {
|
||||
error!("A dummy implementation for utest Bti.NoDelayedUnpin, it does not check the reture value");
|
||||
warn!("A dummy implementation for utest Bti.NoDelayedUnpin, it does not check the reture value");
|
||||
actual.write(0)?;
|
||||
avail.write(0)?;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue