Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
b6dadb4
wip: start reworking how the tests are structured
hannaeko Apr 9, 2026
67dfe0e
improve test environment
hannaeko Apr 9, 2026
5f4bbaf
add tests for dates with set locales
hannaeko Apr 9, 2026
2a60557
add git test
hannaeko Apr 9, 2026
3bfdf4d
remove directory before creating it
hannaeko Apr 9, 2026
c9dc137
don’t list user with git output
hannaeko Apr 9, 2026
91a0bb4
Apply rustfmt
ariasuni Apr 22, 2026
577caf2
Add test for long date when locale is en_US
ariasuni Apr 22, 2026
a7612d7
Set permissions ourselves to avoid umask messing up with tests
ariasuni Apr 22, 2026
d6017b3
use run method in test no_git
hannaeko Apr 22, 2026
a235ca7
Add basic color test
ariasuni Apr 22, 2026
1e76c87
Put cli tests helpers in a different file
ariasuni Apr 22, 2026
c4a93de
Run every cli test in Docker, it’s just simpler
ariasuni Apr 22, 2026
34dc265
update ci
hannaeko Apr 22, 2026
6a3249a
update ci
hannaeko Apr 22, 2026
76c2ba0
remove cache for integration tests
hannaeko Apr 22, 2026
34b6f11
shrink build matrix
hannaeko Apr 22, 2026
bd15a16
remove ci specific service
hannaeko Apr 22, 2026
dd24944
allow run method to be unused
hannaeko Apr 22, 2026
be9faac
Add dotfiles tests
ariasuni Apr 22, 2026
7bc1273
refactor TransientDirectory to simplify running the tests
hannaeko Apr 22, 2026
5cc866a
fix: skip stdin auto-read for /dev/null and character devices
YoshKoz Apr 19, 2026
5c79186
change cwd before running the tests
hannaeko Apr 23, 2026
6afd504
move dependency
hannaeko Apr 23, 2026
cc73224
run rustfmt
hannaeko Apr 23, 2026
862647c
add comment
hannaeko Apr 23, 2026
20de1a6
update tests documentation
hannaeko Apr 23, 2026
a1624c6
Makes locale date tests unix-only since they depend on locales
ariasuni Apr 22, 2026
6dc2089
Add tests for unix xattr
ariasuni Apr 22, 2026
e1bb231
Rename and move tests
ariasuni Apr 22, 2026
cb48cf4
Define binary in helper instead of every TOML file
ariasuni Apr 22, 2026
67baa2f
Mark some cli tests as Linux rather (incorrectly) unix
ariasuni Apr 22, 2026
8fa5aec
Add --git-ignore test
ariasuni Apr 22, 2026
2e1b4be
Add tests for TZ
ariasuni Apr 23, 2026
ebe5c4c
Fix the tests 😡
ariasuni Apr 23, 2026
7c540bb
update ci
hannaeko Apr 23, 2026
5ae1795
Use cargo-hack correctly!! DAMN THAT FEELS GOOD
ariasuni Apr 23, 2026
ad9302e
update ci
hannaeko Apr 23, 2026
6968622
Add tests for git-repos{,-no-status}
ariasuni Apr 23, 2026
39759ae
Add tests for `--header` in combination with various flags
ariasuni Apr 23, 2026
c5aad1a
add helper to create fixed size files
hannaeko Apr 23, 2026
32fd5e9
Cover more cases with the `--git-repos{,no-status}` tests
ariasuni Apr 23, 2026
a37d9f5
add helper to print cmd output
hannaeko Apr 23, 2026
bd3f45f
test ci
hannaeko Apr 23, 2026
00f9fd0
change user in docker
hannaeko Apr 23, 2026
7f4472a
change user configuration
hannaeko Apr 24, 2026
9ebaaf9
improve script
hannaeko Apr 24, 2026
180f5a6
Add tests for `--color-scale{,-mode}`
ariasuni Apr 23, 2026
620a44f
Fix dates for directories we don’t write in
ariasuni Apr 23, 2026
4ef0b11
Add more tests related to sorting (from exa)
ariasuni Apr 23, 2026
5b64931
Remove everything I guess 🤔
ariasuni Apr 24, 2026
7b9f37f
Fix tests
ariasuni Apr 24, 2026
8415eee
Remove unused dependencies
ariasuni Apr 24, 2026
902a1b9
Fix the tests for non Linux
ariasuni Apr 24, 2026
eb6d3ff
Add tests for «weird» filenames
ariasuni Apr 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 0 additions & 28 deletions .config/treefmt.nix

This file was deleted.

3 changes: 0 additions & 3 deletions .envrc

This file was deleted.

77 changes: 32 additions & 45 deletions .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,16 @@ on:
pull_request:
branches: [main]
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always
RUSTFLAGS: --deny warnings
msrv: '1.90'

jobs:
security_audit:
runs-on: ubuntu-latest
Expand All @@ -22,6 +25,7 @@ jobs:
- uses: taiki-e/install-action@cargo-deny
- name: Scan for vulnerabilities
run: cargo deny check

check_if_pr:
runs-on: ubuntu-latest
outputs:
Expand All @@ -35,6 +39,7 @@ jobs:
else
echo "is_pr=false" >> $GITHUB_OUTPUT
fi

no-merge-commits:
needs: check_if_pr
if: needs.check_if_pr.outputs.is_pr == 'true'
Expand All @@ -46,21 +51,22 @@ jobs:
uses: NexusPHP/no-merge-commits@v2.2.1
with:
token: ${{ secrets.GITHUB_TOKEN }}

conventional:
needs: [check_if_pr, no-merge-commits]
name: Conventional Commits
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: webiny/action-conventional-commits@v1.3.0

unit-tests:
needs: conventional
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.rust == 'nightly' }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust: [msrv, stable, beta, nightly]
rust: [msrv, stable]
steps:
- name: Checkout repository
uses: actions/checkout@v6
Expand All @@ -78,15 +84,15 @@ jobs:
if: ${{ matrix.os != 'windows-latest' }}
run: cargo clippy -- -D warnings
- name: Run unit tests
run: cargo hack test
run: cargo hack test -- --skip cli_tests

unit-tests-freebsd:
needs: conventional
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
timeout-minutes: 20
continue-on-error: ${{ matrix.rust == 'nightly' }}
strategy:
matrix:
rust: [msrv, stable, beta, nightly]
rust: [msrv, stable]
steps:
- uses: actions/checkout@v6
with:
Expand All @@ -109,15 +115,15 @@ jobs:
export RUSTFLAGS="--deny warnings"
cargo fmt --check
cargo clippy -- -D warnings
cargo hack test
cargo hack test -- --skip cli_tests

unit-tests-netbsd:
needs: conventional
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
timeout-minutes: 20
continue-on-error: ${{ matrix.rust == 'nightly' }}
strategy:
matrix:
rust: [msrv, stable, beta, nightly]
rust: [msrv, stable]
steps:
- uses: actions/checkout@v6
with:
Expand All @@ -143,10 +149,10 @@ jobs:
export RUSTFLAGS="--deny warnings"
cargo fmt --check
cargo clippy -- -D warnings
cargo hack test
cargo hack test -- --skip cli_tests

unit-tests-openbsd:
needs: conventional
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
Expand All @@ -170,36 +176,17 @@ jobs:
# export RUSTFLAGS="--deny warnings"
cargo fmt --check
# cargo clippy -- -D warnings
cargo hack test
flake-check:
needs: conventional
name: Check Nix Flake
runs-on: ubuntu-latest
strategy:
matrix:
checks: [build, formatting, lint, pre-commit-check, test, trycmd]
target: [x86_64-linux]
steps:
- uses: actions/checkout@v6
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v17
- name: Nix Flake Check
run: nix build .#checks.${{ matrix.target }}.${{ matrix.checks }} -L
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
flake-build:
needs: conventional
name: Build Nix package
# if cross compilation is desired add 'aarch64-linux', 'x86_64-darwin' and 'aarch64-darwin' and fix the flake to support cross compilation.
strategy:
matrix:
target: [x86_64-linux]
runs-on: ubuntu-latest
cargo hack test -- --skip cli_tests

integration-tests-unix:
runs-on: ubuntu-22.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v17
- name: Nix Build
run: nix build .#packages.${{ matrix.target }}.default -L
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout repository
uses: actions/checkout@v6

- name: Install test dependencies
uses: extractions/setup-just@v4

- name: Run integration tests
run: just integration-tests
32 changes: 5 additions & 27 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,27 +1,15 @@
# SPDX-FileCopyrightText: 2024 Christina Sørensen
# SPDX-License-Identifier: EUPL-1.2
# Nix Flake stuff
result

# Generated by nix-pre-commit-hooks
/.pre-commit-config.yaml

# Direnv
.direnv

# Rust stuff
target
/target

# Vagrant stuff
.vagrant
*.log
## Dynamically generated test data
/tests/data

# Compiled artifacts
# (see devtools/*-package-for-*.sh)
/eza-linux-x86_64
/eza-linux-x86_64-*.zip
/eza-macos-x86_64
/eza-macos-x86_64-*.zip
/eza-*-x86_64
/eza-*-x86_64-*.zip
/eza_*.deb
/MD5SUMS
/SHA1SUMS
Expand All @@ -31,13 +19,3 @@ parts
prime
stage
*.snap

# VHS testing stuff
out.gif
tests/tmp

## Dynamically generated
tests/test_dir

# Miscenallous
.idea
File renamed without changes.
6 changes: 2 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ SPDX-License-Identifier: EUPL-1.2

### Documentation

- Corrected "user_executable_file" option
- Corrected "user_executable_file" option

### Features

Expand Down Expand Up @@ -2682,7 +2682,7 @@ SPDX-License-Identifier: EUPL-1.2
- Add selinux contexts support
- Add -o shorcut to --octal-permissions
- Hyperlink flag
- Update Cargo.toml to optimise binaries for size
- Update Cargo.toml to optimise binaries for size
- Add git-status-.* completions
- Zsh add git-status-.* completions
- Add git-status-.* completions
Expand Down Expand Up @@ -2818,5 +2818,3 @@ SPDX-License-Identifier: EUPL-1.2
### Vagrant

- Update apt before installing


Loading