-
Notifications
You must be signed in to change notification settings - Fork 289
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Dev] add powershell for setup (#3343)
* add powershell for setup testing: @WGB5445
- Loading branch information
Showing
8 changed files
with
187 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
$STARCOIN_DIR = (get-item $PSScriptRoot).parent.FullName | ||
$TEST_RESULT_FILE="$STARCOIN_DIR/target/debug/test_result.txt" | ||
$TEST_RESULT_FAILED_FILE="$STARCOIN_DIR/target/debug/test_result_failed.txt" | ||
Write-Host "Starcoin root dir: $STARCOIN_DIR" | ||
|
||
$env:RUSTFLAGS="-Ccodegen-units=1 -Copt-level=0" | ||
$env:RUSTC_BOOTSTRAP=1 | ||
$env:RUST_MIN_STACK=8*1024*1024 | ||
$env:RUST_LOG="OFF" | ||
$env:RUST_BACKTRACE=0 | ||
cargo xtest --exclude starcoin-move-prover -j 15 -- --test-threads=10 --color never --format pretty | Tee-Object "$TEST_RESULT_FILE" | ||
|
||
$failed_tests=Select-String -Pattern 'test .* \.\.\. FAILED' -Path "./target/debug/test_result.txt" -AllMatche | ||
Write-Host "All failed tests are redirected to file: $TEST_RESULT_FAILED_FILE" -ForegroundColor Green | ||
$failed_tests > "$TEST_RESULT_FAILED_FILE" | ||
|
||
Write-Host "Retring failed test cases" -ForegroundColor Green | ||
$env:RUST_LOG="DEBUG" | ||
$env:RUST_BACKTRACE="FULL" | ||
$case_status=0 | ||
$failed_tests | ForEach-Object { | ||
$test=$_ -split ' ' | ||
$test=$test[1] | ||
Write-Host "Rerunning test failed case: $test" -ForegroundColor Red | ||
cargo xtest -j 15 "$test" -- --test-threads=1 --nocapture | ||
if ($LASTEXITCODE -ne 0) { | ||
$case_status=$LASTEXITCODE | ||
Write-Host "Test case $test failed with $case_status" -ForegroundColor Red | ||
} | ||
} | ||
exit $case_status |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
$diff=$(git diff) | ||
Write-Host "$diff" | ||
|
||
$changed_files=$(git status --porcelain) | ||
Write-Host "$changed_files" |
0
scripts/changed-files.sh → scripts/changed_files.sh
100755 → 100644
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
$STARCOIN_DIR = (get-item $PSScriptRoot).parent.FullName | ||
|
||
# cargo fmt check | ||
cargo fmt -- --check | ||
# cargo clippy check | ||
cargo clippy --all-targets -- -D warnings | ||
# generate stdlib | ||
cargo run -p stdlib | ||
# generate genesis | ||
cargo run -p starcoin-genesis | ||
# generate rpc schema document | ||
cargo run -p starcoin-rpc-api -- -d ./rpc/generated_rpc_schema | ||
# test config file | ||
cargo test -p starcoin-config test_example_config_compact | ||
# check changed files | ||
. "${STARCOIN_DIR}/scripts/changed_files.ps1" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
<# | ||
.SYNOPSIS | ||
Usage: | ||
Installs or updates necessary dev tools for starcoinorg/starcoin. | ||
-p update environment variables only | ||
-t install build tools | ||
-y installs or updates Move prover tools: z3, cvc5, dotnet, boogie | ||
-dir <path> - directory to install to | ||
.DESCRIPTION | ||
helper for setting up starcoin development environment | ||
#> | ||
param( | ||
[Parameter()] | ||
[Alias('p')] | ||
[switch]$INSTALL_PROFILE, | ||
|
||
[Parameter()] | ||
[Alias('t')] | ||
[switch]$INSTALL_BUILD_TOOLS, | ||
|
||
[Parameter()] | ||
[Alias('y')] | ||
[switch]$INSTALL_PROVER, | ||
|
||
[Parameter()] | ||
[Alias('dir')] | ||
[string]$INSTALL_DIR="${HOME}\.starcoin_deps" | ||
) | ||
|
||
|
||
|
||
$Z3_VERSION="4.8.13" | ||
$CVC5_VERSION="1.0.0" | ||
$BOOGIE_VERSION="2.9.6" | ||
|
||
Write-Host "INSTALL_PROFILE=$INSTALL_PROFILE" | ||
Write-Host "INSTALL_BUILD_TOOLS=$INSTALL_BUILD_TOOLS" | ||
Write-Host "INSTALL_PROVER=$INSTALL_PROVER" | ||
Write-Host "INSTALL_DIR=$INSTALL_DIR" | ||
|
||
# check environment if exist | ||
# $key env $value value | ||
function check_set_env { | ||
param( | ||
[Parameter(Mandatory=$true)] | ||
[string]$key, | ||
[Parameter(Mandatory=$true)] | ||
[string]$value | ||
) | ||
[string] $env_value = [Environment]::GetEnvironmentVariable($key, 'User') | ||
if($env_value -ne $value){ | ||
Write-Host "set $key=$value" | ||
[Environment]::SetEnvironmentVariable($key,$value,'User') | ||
}else{ | ||
Write-Host "Environment variable $key is set" | ||
} | ||
} | ||
|
||
# set env and path variables | ||
function set_env_path { | ||
Write-Host "Setting environment variables for profile" | ||
check_set_env "Z3_EXE" "$INSTALL_DIR\z3\z3.exe" | ||
check_set_env "CVC5_EXE" "$INSTALL_DIR\cvc5.exe" | ||
check_set_env "BOOGIE_EXE" "$INSTALL_DIR\tools\boogie\" | ||
} | ||
|
||
function install_z3 { | ||
$z3pkg = "z3-$Z3_VERSION-x64-win" | ||
# download z3 | ||
Invoke-WebRequest -Uri "https://github.com/Z3Prover/z3/releases/download/z3-$z3_version/$z3pkg.zip" -OutFile "$INSTALL_DIR\z3\z3.zip" | ||
# unzip z3 | ||
Write-Host "Unzipping z3" | ||
Expand-Archive "$INSTALL_DIR\z3\z3.zip" -DestinationPath "$INSTALL_DIR\z3" | ||
# remove z3.zip | ||
Remove-Item "$INSTALL_DIR\z3\z3.zip" -Force | ||
# mv z3.exe into z3 path | ||
Copy-Item "$INSTALL_DIR\z3\$z3pkg\bin\z3.exe" "$INSTALL_DIR\z3\z3.exe" | ||
} | ||
|
||
function install_cvc5 { | ||
Invoke-WebRequest -Uri "https://github.com/cvc5/cvc5/releases/download/cvc5-$CVC5_VERSION/cvc5-Win64.exe" -OutFile "$INSTALL_DIR\cvc5.exe" | ||
} | ||
|
||
function install_boogie { | ||
dotnet tool update --tool-path "$INSTALL_DIR\tools\boogie" Boogie --version $BOOGIE_VERSION | ||
} | ||
|
||
function install_build_tools { | ||
try { | ||
clang 2>&1>$null | ||
} catch { | ||
Write-Error "Clang not found, installing llvm and clang" | ||
$llvmVersion = "12.0.0" | ||
Write-Host "Installing LLVM $llvmVersion ..." -ForegroundColor Cyan | ||
Write-Host "Downloading..." | ||
$exePath = "$env:temp\LLVM-$llvmVersion-win64.exe" | ||
Invoke-WebRequest -Uri "https://github.com/llvm/llvm-project/releases/download/llvmorg-$llvmVersion/LLVM-$llvmVersion-win64.exe" -OutFile $exePath | ||
Write-Host "Installing..." | ||
cmd /c start $exePath | ||
Write-Host "Installed" -ForegroundColor Green | ||
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\LLVM\bin", 'User') | ||
} | ||
try { | ||
dotnet 2>&1>$null | ||
} catch { | ||
Write-Error "Dotnet sdk not found, installing dotnet sdk!" | ||
$exePath = "$env:temp\dotnet-sdk-6.0.202-win-x64.exe" | ||
Invoke-WebRequest -Uri "https://download.visualstudio.microsoft.com/download/pr/e4f4bbac-5660-45a9-8316-0ffc10765179/8ade57de09ce7f12d6411ed664f74eca/dotnet-sdk-6.0.202-win-x64.exe" -OutFile $exePath | ||
Write-Host "Installing..." | ||
cmd /c start $exePath | ||
Write-Host "Installed" -ForegroundColor Green | ||
} | ||
try { | ||
cargo 2>&1>$null | ||
} catch { | ||
throw "install rust by yourself please" | ||
} | ||
} | ||
|
||
if ($INSTALL_PROFILE -eq $true) { | ||
Write-Host "Installing profile" | ||
set_env_path | ||
} | ||
if ($INSTALL_BUILD_TOOLS -eq $true) { | ||
Write-Host "Installing build tools" | ||
install_build_tools | ||
} | ||
if ($INSTALL_PROVER -eq $true) { | ||
Write-Host "Installing prover" | ||
install_z3 | ||
install_cvc5 | ||
install_boogie | ||
} |
This file was deleted.
Oops, something went wrong.