diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9b01d67 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,20 @@ +name: CI + +on: + push: + pull_request: + workflow_dispatch: + +jobs: + generate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Run tests + run: | + cargo test + + #- name: Run cargo fmt --check + # run: cargo fmt --check + diff --git a/tests/a.txt b/tests/a.txt new file mode 100644 index 0000000..389483e --- /dev/null +++ b/tests/a.txt @@ -0,0 +1,2 @@ +First example +Second row diff --git a/tests/empty.txt b/tests/empty.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/wc.rs b/tests/wc.rs new file mode 100644 index 0000000..30f1584 --- /dev/null +++ b/tests/wc.rs @@ -0,0 +1,31 @@ +use std::process::Command; + +#[test] +fn simple_wc() { + let result = Command::new("cargo") + .arg("build") + .arg("--release") + .output() + .expect("Could not run"); + assert_eq!(result.status.code(), Some(0)); + + + let result = Command::new("target/release/wc-rs") + .arg("tests/a.txt") + .output() + .expect("Could not run"); + assert_eq!(result.status.code(), Some(0)); + assert_eq!(std::str::from_utf8(&result.stdout).unwrap(), "2\t4\t25\t\u{1b}[2;32mtests/a.txt\u{1b}[0m\n"); + assert_eq!(std::str::from_utf8(&result.stderr).unwrap(), ""); + + + let result = Command::new("target/release/wc-rs") + .arg("tests/empty.txt") + .output() + .expect("Could not run"); + assert_eq!(result.status.code(), Some(0)); + assert_eq!(std::str::from_utf8(&result.stdout).unwrap(), "0\t0\t0\t\u{1b}[2;32mtests/empty.txt\u{1b}[0m\n"); + assert_eq!(std::str::from_utf8(&result.stderr).unwrap(), ""); + +} +