From 64b047195d324dc2952388a77405bb4b27c6bcb9 Mon Sep 17 00:00:00 2001 From: Wildan Mubarok Date: Wed, 9 Jul 2025 18:42:59 +0000 Subject: [PATCH] Add CI Tests --- .gitlab-ci.yml | 25 ++++++++++ res/test.toml | 108 +++++++++++++++++++++++++++++++------------- src/disk_wrapper.rs | 8 +--- 3 files changed, 102 insertions(+), 39 deletions(-) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000..596e65499c --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,25 @@ +image: "rust:latest" + +stages: + - lint + - test + +workflow: + rules: + - if: '$CI_COMMIT_BRANCH == "master"' + - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"' + +fmt: + stage: lint + script: + - rustup component add rustfmt + - cargo fmt -- --check + +cargo-test: + stage: test + script: + - apt update && apt install -y fuse3 libfuse3-dev + - cargo build --locked + - cargo test + - fallocate -l 256MiB test.bin + - ./target/debug/redox_installer -c res/test.toml test.bin diff --git a/res/test.toml b/res/test.toml index 659878be33..e85ef380dc 100644 --- a/res/test.toml +++ b/res/test.toml @@ -6,9 +6,11 @@ include = [] prompt = false filesystem_size = 256 -[packages.bootloader] +[packages.base] -[packages.bootstrap] +[packages.base-initfs] + +[packages.bootloader] [packages.ca-certificates] @@ -16,29 +18,25 @@ filesystem_size = 256 [packages.drivers] -[packages.escalated] - [packages.extrautils] [packages.findutils] -[packages.initfs] - [packages.ion] -[packages.ipcd] - [packages.kernel] -[packages.netdb] +[packages.libgcc] -[packages.netstack] +[packages.libstdcxx] + +[packages.netdb] [packages.netutils] [packages.pkgutils] -[packages.ptyd] +[packages.relibc] [packages.smith] @@ -55,7 +53,7 @@ mkdir -m a=rwxt /tmp ipcd ptyd -escalated +sudo --daemon """ symlink = false directory = false @@ -64,7 +62,7 @@ recursive_chown = false [[files]] path = "/usr/lib/init.d/00_drivers" data = """ -pcid /etc/pcid.d/ +pcid-spawner /etc/pcid.d/ """ symlink = false directory = false @@ -72,16 +70,14 @@ recursive_chown = false [[files]] path = "/etc/hostname" -data = """ -redox -""" +data = "redox" symlink = false directory = false recursive_chown = false [[files]] path = "/usr/lib/os-release" -data = ''' +data = """ PRETTY_NAME="Redox OS 0.9.0" NAME="Redox OS" VERSION_ID="0.9.0" @@ -91,7 +87,7 @@ ID="redox-os" HOME_URL="https://redox-os.org/" DOCUMENTATION_URL="https://redox-os.org/docs/" SUPPORT_URL="https://redox-os.org/community/" -''' +""" symlink = false directory = false recursive_chown = false @@ -103,6 +99,13 @@ symlink = true directory = false recursive_chown = false +[[files]] +path = "/etc/pkg.d/50_redox" +data = "https://static.redox-os.org/pkg" +symlink = false +directory = false +recursive_chown = false + [[files]] path = "/usr" data = "" @@ -164,13 +167,6 @@ directory = true mode = 493 recursive_chown = false -[[files]] -path = "/libexec" -data = "usr/libexec" -symlink = true -directory = false -recursive_chown = false - [[files]] path = "/usr/share" data = "" @@ -186,6 +182,61 @@ symlink = true directory = false recursive_chown = false +[[files]] +path = "/usr/share/fonts" +data = "../../ui/fonts" +symlink = true +directory = false +recursive_chown = false + +[[files]] +path = "/var" +data = "" +symlink = false +directory = true +mode = 493 +recursive_chown = false + +[[files]] +path = "/var/cache" +data = "" +symlink = false +directory = true +mode = 493 +recursive_chown = false + +[[files]] +path = "/var/lib" +data = "" +symlink = false +directory = true +mode = 493 +recursive_chown = false + +[[files]] +path = "/var/lock" +data = "" +symlink = false +directory = true +mode = 1023 +recursive_chown = false + +[[files]] +path = "/var/log" +data = "" +symlink = false +directory = true +mode = 493 +recursive_chown = false + +[[files]] +path = "/var/tmp" +data = "" +symlink = false +directory = true +mode = 1023 +recursive_chown = false + [[files]] path = "/dev/null" data = "/scheme/null" @@ -300,13 +351,6 @@ symlink = false directory = false recursive_chown = false -[[files]] -path = "/etc/pkg.d/50_redox" -data = "https://static.redox-os.org/pkg" -symlink = false -directory = false -recursive_chown = false - [users.root] password = "password" uid = 0 diff --git a/src/disk_wrapper.rs b/src/disk_wrapper.rs index 09647117eb..d712409c7a 100644 --- a/src/disk_wrapper.rs +++ b/src/disk_wrapper.rs @@ -66,13 +66,7 @@ impl DiskWrapper { let block = self.seek / block_len; let offset: usize = (self.seek % block_len).try_into().unwrap(); let remaining = buf_len.checked_sub(i).unwrap(); - let len = cmp::min( - remaining, - self.block - .len() - .checked_sub(offset) - .unwrap(), - ); + let len = cmp::min(remaining, self.block.len().checked_sub(offset).unwrap()); self.disk .seek(SeekFrom::Start(block.checked_mul(block_len).unwrap()))?;