summaryrefslogtreecommitdiffstats
path: root/test/test-performance.sh
diff options
context:
space:
mode:
authorMalfurious <m@lfurio.us>2021-08-23 07:35:24 -0400
committerMalfurious <m@lfurio.us>2021-08-23 07:35:24 -0400
commit0175c1c40f9567a401a986d85ab6d6f5365eec7a (patch)
tree6e631a29735ab0c5ca0f1650934da3a24eecff62 /test/test-performance.sh
parent6c08d333a74aacd1fa9d14de9abab38ede4a8e88 (diff)
downloadgit-sonar-0175c1c40f9567a401a986d85ab6d6f5365eec7a.tar.gz
git-sonar-0175c1c40f9567a401a986d85ab6d6f5365eec7a.zip
Remove unit tests
I don't particularly wish to maintain these tests for a few reasons: * Many of them make assertions strictly about rendered text / UI * Many of them test external systems and touch the disk * There are platform-dependent details that complicate several tests. So, the tests are removed. Ideally, the main script is reworked into something simple enough it doesn't necessarily warrant heavy testing. Signed-off-by: Malfurious <m@lfurio.us>
Diffstat (limited to 'test/test-performance.sh')
-rwxr-xr-xtest/test-performance.sh231
1 files changed, 0 insertions, 231 deletions
diff --git a/test/test-performance.sh b/test/test-performance.sh
deleted file mode 100755
index cb19666..0000000
--- a/test/test-performance.sh
+++ /dev/null
@@ -1,231 +0,0 @@
-scriptDir="$(cd "$(dirname "$0")"; pwd)"
-
-source "$scriptDir/sonar-base.sh"
-
-cd_to_tmp() {
- tmpfile="/tmp/git-prompt-tests-$(time_now)$1"
- mkdir -p "$tmpfile"
- cd "$tmpfile"
-}
-
-rm_tmp() {
- cd $scriptDir
- rm -rf /tmp/git-prompt-tests*
-}
-
-report() {
- arr=( "$@" )
- printf '%s\n' "${arr[@]}" | sort -n | awk '
- function colored(s) {
- OFMT="%2.3fs";
- OFS="";
- ORS="";
- if( s > 0.2 ) {
- print "\033[1;31m", s, "\033[0m"
- } else if( s > 0.1 ) {
- print "\033[1;33m", s, "\033[0m"
- } else {
- print "\033[1;32m", s, "\033[0m"
- }
- OFS="\t";
- ORS="\n";
- }
- BEGIN {
- c = 0;
- sum = 0;
- }
- $1 ~ /^[0-9]*(\.[0-9]*)?$/ {
- a[c++] = $1;
- sum += $1;
- }
- END {
- min = a[0] + 0;
- max = a[c-1] + 0;
- ave = sum / c;
- if( (c % 2) == 1 ) {
- median = a[ int(c/2) ];
- } else {
- median = ( a[c/2] + a[c/2-1] ) / 2;
- }
- OFS="\t";
- OFMT="%2.3fs";
- print c, colored(ave), colored(median), colored(min), colored(max);
- }
-'
-}
-
-table_headers() {
- printf " Count\tMean\tMedian\tMin\tMax\n"
-}
-
-profile () {
- cmd="$2"
- for (( i = 0; i < 100; i++ )); do
- start=$(gdate +%s.%N)
- eval $cmd > /dev/null
- duration=$(echo "$(gdate +%s.%N) - $start" | bc)
- timings[$i]=$duration
- done
- printf '%-25s' "$1"
- report "${timings[@]}"
-}
-
-test_empty_repo() {
- cd_to_tmp
- git init --quiet
-
- table_headers
- profile "prompt.zsh" "/.$scriptDir/prompt.zsh"
- profile "prompt.bash" "/.$scriptDir/prompt.bash"
-
- rm_tmp
-}
-
-test_lots_of_file_changes() {
- cd_to_tmp
- git init --quiet
-
- table_headers
-
- profile "no changes zsh" "/.$scriptDir/prompt.zsh"
- profile "no changes bash" "/.$scriptDir/prompt.bash"
-
- for (( i = 0; i < 100; i++ )); do
- touch foo$i
- done
-
- profile "100 untracked zsh" "/.$scriptDir/prompt.zsh"
- profile "100 untracked bash" "/.$scriptDir/prompt.bash"
-
- for (( i = 0; i < 100; i++ )); do
- touch bar$i
- git add bar$i
- done
-
- profile "100 added zsh" "/.$scriptDir/prompt.zsh"
- profile "100 added bash" "/.$scriptDir/prompt.bash"
-
- for (( i = 0; i < 100; i++ )); do
- echo "bar$i" > bar$i
- done
-
- profile "100 modify zsh" "/.$scriptDir/prompt.zsh"
- profile "100 modify bash" "/.$scriptDir/prompt.bash"
-
- rm_tmp
-}
-
-test_commits_local_and_remote_ahead() {
- cd_to_tmp "remote"
- git init --quiet
- touch README
- git add .
- git commit -m "initial commit" --quiet
- remoteLocation="$(pwd)"
-
- cd_to_tmp "new"
- git init --quiet
- git remote add origin $remoteLocation
- git fetch origin --quiet
- git checkout master --quiet
-
- git checkout -b foo --quiet
- git push --quiet -u origin foo >/dev/null
-
- table_headers
-
- profile "0 commits zsh" "/.$scriptDir/prompt.zsh"
- profile "0 commits bash" "/.$scriptDir/prompt.bash"
-
- for (( i = 0; i < 100; i++ )); do
- echo "foo$i" >> foo
- git add .
- git commit -m "foo $i" --quiet
- done
-
- profile "100 local zsh" "/.$scriptDir/prompt.zsh"
- profile "100 local bash" "/.$scriptDir/prompt.bash"
-
- git push --quiet
-
- profile "100 remote zsh" "/.$scriptDir/prompt.zsh"
- profile "100 remote bash" "/.$scriptDir/prompt.bash"
-
- rm_tmp
-}
-
-test_commits_local_and_remote_behind() {
- cd_to_tmp "remote"
- git init --bare --quiet
- remoteLocation="$(pwd)"
-
- cd_to_tmp "new"
- git init --quiet
- git remote add origin $remoteLocation
- git fetch origin --quiet
- git checkout -b master --quiet
- touch README
- git add README
- git commit -m "initial commit" --quiet
-
- git push --quiet -u origin master >/dev/null
- git reset --quiet --hard HEAD
-
- git checkout -b foo --quiet
- git push --quiet -u origin foo >/dev/null
-
- git checkout master --quiet
-
- table_headers
-
- profile "0 commits zsh" "/.$scriptDir/prompt.zsh"
- profile "0 commits bash" "/.$scriptDir/prompt.bash"
-
- for (( i = 0; i < 100; i++ )); do
- echo "foo$i" >> foo
- git add .
- git commit -m "foo $i" --quiet
- done
-
- git push --quiet
- git checkout foo --quiet
-
- profile "100 behind remote zsh" "/.$scriptDir/prompt.zsh"
- profile "100 behind remote bash" "/.$scriptDir/prompt.bash"
-
- git checkout master --quiet
- git checkout -b bar --quiet
- git push --quiet -u origin bar >/dev/null
- git reset --hard origin/foo --quiet
-
- profile "100 behind mine zsh" "/.$scriptDir/prompt.zsh"
- profile "100 behind mine bash" "/.$scriptDir/prompt.bash"
-
-}
-
-test_large_repo() {
- cd_to_tmp
- git clone https://github.com/Homebrew/homebrew --quiet
- cd homebrew
-
- table_headers
- profile "prompt.zsh" "/.$scriptDir/prompt.zsh"
- profile "prompt.bash" "/.$scriptDir/prompt.bash"
-
- rm_tmp
-}
-
-test_lots_of_submodules() {
- cd_to_tmp
- git clone https://github.com/michaeldfallen/dotfiles --quiet
- cd dotfiles
- git submodule update --init --quiet
-
- table_headers
- profile "prompt.zsh" "/.$scriptDir/prompt.zsh"
- profile "prompt.bash" "/.$scriptDir/prompt.bash"
-
- rm_tmp
-}
-
-. ./shunit/shunit2