From 5980a0a845e78ffbcc0b0da243a01ffa42d3643b Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Sun, 28 Apr 2019 13:08:49 -0400 Subject: [PATCH] Revert "Add docker for integration tests" (#36) This reverts commit 67d938c3de08671518409b556f23d0e1181e920d. --- .dockerignore | 1 - azure-pipelines.yml | 15 ++++++++---- integration_test | 13 ----------- tests/Dockerfile | 36 ----------------------------- tests/directory.rs | 20 ++++++---------- tests/nodejs.rs | 56 --------------------------------------------- 6 files changed, 18 insertions(+), 123 deletions(-) delete mode 100644 .dockerignore delete mode 100755 integration_test delete mode 100644 tests/Dockerfile delete mode 100644 tests/nodejs.rs diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 2f7896d1..00000000 --- a/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -target/ diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1f1dd639..52ebd028 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -20,6 +20,15 @@ jobs: - script: cargo fmt --all -- --check displayName: Run Rustfmt + - job: "Bench" + pool: + vmImage: "ubuntu-16.04" + container: "rust:latest" + condition: eq(variables['Build.Reason'], 'PullRequest') + steps: + - script: cargo bench + displayName: Run benchmark + - job: "Test" strategy: matrix: @@ -41,9 +50,6 @@ jobs: pool: vmImage: "ubuntu-16.04" steps: - - task: NodeTool@0 - inputs: - versionSpec: '12.0.0' - script: | curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUSTUP_TOOLCHAIN echo "##vso[task.setvariable variable=PATH;]$PATH:$HOME/.cargo/bin" @@ -57,5 +63,6 @@ jobs: condition: eq( variables['Agent.OS'], 'Windows_NT' ) - script: cargo build --all displayName: Cargo build - - script: cargo test -- --ignored + # Until env stubbing is solved, make tests run on a single thread + - script: cargo test --all -- --test-threads=1 displayName: Cargo test diff --git a/integration_test b/integration_test deleted file mode 100755 index 8d716d56..00000000 --- a/integration_test +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -if ! (docker --version); then - printf 'Docker is required to run the starship integration tests.\n' - printf 'Please download and install Docker in order to run these tests locally.\n' - exit 1 -fi - -printf 'Building test docker image:\n' -docker build -f tests/Dockerfile --tag starship-test . - -printf 'Running test suite:\n' -docker run --rm -t -v $(pwd):/starship starship-test diff --git a/tests/Dockerfile b/tests/Dockerfile deleted file mode 100644 index 992e31ea..00000000 --- a/tests/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -FROM rust:latest - -# Install Node.js -ENV NODE_VERSION 12.0.0 -RUN curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash \ - && . $HOME/.nvm/nvm.sh \ - && nvm install $NODE_VERSION \ - && nvm alias default $NODE_VERSION \ - && nvm use default -ENV PATH /root/.nvm/versions/node/v$NODE_VERSION/bin:$PATH -# Check that Node.js was correctly installed -RUN node --version - -# Create blank project -RUN USER=root cargo new --bin starship -WORKDIR /starship - -# We want dependencies cached, so copy those first -COPY ./Cargo.lock ./Cargo.lock -COPY ./Cargo.toml ./Cargo.toml - -# Cargo.toml will fail to parse without my_benchmark -RUN mkdir benches -RUN touch benches/my_benchmark.rs - -# This is a dummy build to get dependencies cached -RUN cargo build --release - -# Delete the dummy build -RUN rm -rf /starship - -# Create the directory for the real source files -RUN mkdir starship -WORKDIR /starship - -CMD [ "cargo", "test", "--", "--ignored"] diff --git a/tests/directory.rs b/tests/directory.rs index 2eb20f48..e7c0d1cd 100644 --- a/tests/directory.rs +++ b/tests/directory.rs @@ -1,5 +1,4 @@ use ansi_term::Color; -use dirs::home_dir; use git2::Repository; use starship::segment::Segment; use std::fs; @@ -26,8 +25,7 @@ fn home_directory() -> io::Result<()> { #[test] #[ignore] fn directory_in_home() -> io::Result<()> { - let dir = home_dir().unwrap().join("starship/engine"); - fs::create_dir_all(&dir)?; + let dir = Path::new("~/starship/engine"); let expected = Segment::new("dir") .set_value("~/starship/engine") @@ -42,8 +40,7 @@ fn directory_in_home() -> io::Result<()> { #[test] #[ignore] fn truncated_directory_in_home() -> io::Result<()> { - let dir = home_dir().unwrap().join("starship/engine/schematics"); - fs::create_dir_all(&dir)?; + let dir = Path::new("~/starship/engine/schematics"); let expected = Segment::new("dir") .set_value("starship/engine/schematics") @@ -70,11 +67,12 @@ fn root_directory() -> io::Result<()> { } #[test] +#[ignore] fn directory_in_root() -> io::Result<()> { - let dir = Path::new("/opt"); + let dir = Path::new("/private"); let expected = Segment::new("dir") - .set_value("/opt") + .set_value("/private") .set_style(Color::Cyan.bold()) .output(); let actual = common::render_segment("dir", &dir); @@ -86,11 +84,10 @@ fn directory_in_root() -> io::Result<()> { #[test] #[ignore] fn truncated_directory_in_root() -> io::Result<()> { - let dir = Path::new("/opt/starship/thrusters/rocket"); - fs::create_dir_all(&dir)?; + let dir = Path::new("/private/var/folders/3s"); let expected = Segment::new("dir") - .set_value("starship/thrusters/rocket") + .set_value("var/folders/3s") .set_style(Color::Cyan.bold()) .output(); let actual = common::render_segment("dir", &dir); @@ -100,7 +97,6 @@ fn truncated_directory_in_root() -> io::Result<()> { } #[test] -#[ignore] fn git_repo_root() -> io::Result<()> { let tmp_dir = TempDir::new()?; let repo_dir = tmp_dir.path().join("rocket-controls"); @@ -119,7 +115,6 @@ fn git_repo_root() -> io::Result<()> { } #[test] -#[ignore] fn directory_in_git_repo() -> io::Result<()> { let tmp_dir = TempDir::new()?; let repo_dir = tmp_dir.path().join("rocket-controls"); @@ -139,7 +134,6 @@ fn directory_in_git_repo() -> io::Result<()> { } #[test] -#[ignore] fn truncated_directory_in_git_repo() -> io::Result<()> { let tmp_dir = TempDir::new()?; let repo_dir = tmp_dir.path().join("rocket-controls"); diff --git a/tests/nodejs.rs b/tests/nodejs.rs deleted file mode 100644 index e89f3328..00000000 --- a/tests/nodejs.rs +++ /dev/null @@ -1,56 +0,0 @@ -use ansi_term::Color; -use starship::segment::Segment; -use std::fs::{self, File}; -use std::io; -use tempfile::TempDir; - -mod common; - -#[test] -#[ignore] -fn folder_with_package_json() -> io::Result<()> { - let dir = TempDir::new()?; - File::create(dir.path().join("package.json"))?; - - let expected = Segment::new("node") - .set_value("⬢ v12.0.0") - .set_style(Color::Green) - .output(); - let actual = common::render_segment("nodejs", &dir.path()); - assert_eq!(expected, actual); - - Ok(()) -} - -#[test] -#[ignore] -fn folder_with_js_file() -> io::Result<()> { - let dir = TempDir::new()?; - File::create(dir.path().join("index.js"))?; - - let expected = Segment::new("node") - .set_value("⬢ v12.0.0") - .set_style(Color::Green) - .output(); - let actual = common::render_segment("nodejs", &dir.path()); - assert_eq!(expected, actual); - - Ok(()) -} - -#[test] -#[ignore] -fn folder_with_node_modules() -> io::Result<()> { - let dir = TempDir::new()?; - let node_modules = dir.path().join("node_modules"); - fs::create_dir_all(&node_modules)?; - - let expected = Segment::new("node") - .set_value("⬢ v12.0.0") - .set_style(Color::Green) - .output(); - let actual = common::render_segment("nodejs", &dir.path()); - assert_eq!(expected, actual); - - Ok(()) -}