Browse Source

add tests and disable socat as capturing command run with sudo is not working

Pi 2 months ago
parent
commit
434262f605
7 changed files with 70 additions and 6 deletions
  1. 1 1
      capture.sh
  2. 1 1
      helpers/common.sh
  3. 4 4
      rc/.shrc
  4. 0 0
      tests/capture-ls-data/a
  5. 0 0
      tests/capture-ls-data/b
  6. 0 0
      tests/capture-ls-data/c
  7. 64 0
      tests/test.sh

+ 1 - 1
capture.sh

@@ -38,7 +38,7 @@ EOF
 trap 'info' EXIT
 
 exec 2> >(tee -a "$DAT" "$ERR")
-if which socat 1>/dev/null 2>&1
+if which socat 1>/dev/null 2>&1 && false
 then
 	tty="$(tty)"
 	socat PTY,rawer,link="$PTY" EXEC:"$(shell_escape tee -a "$DAT" "$OUT" "$tty")" &

+ 1 - 1
helpers/common.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 # Copyright (c) Daniel Sheffield 2024 - 2025
 
-LOG_ROOT="$HOME"/.local/var/log/shell
+[ "${LOG_ROOT:-}" ] || LOG_ROOT="$HOME"/.local/var/log/shell
 
 ESSENTIAL_GENERIC=(
 	cat

+ 4 - 4
rc/.shrc

@@ -1,11 +1,11 @@
 alias capture="$RECALL_PREFIX/capture.sh"
 alias recall="$RECALL_PREFIX/recall.sh"
 
-+ (){
-	capture "$@"
++ () {
+	"$RECALL_PREFIX/capture.sh" "$@"
 }
-@ (){
-	recall "$@"
+@ () {
+	"$RECALL_PREFIX/recall.sh" "$@"
 }
 - () {
 	# handle zero args

+ 0 - 0
tests/capture-ls-data/a


+ 0 - 0
tests/capture-ls-data/b


+ 0 - 0
tests/capture-ls-data/c


+ 64 - 0
tests/test.sh

@@ -0,0 +1,64 @@
+#!/bin/bash
+set -euo pipefail
+
+DEFAULT_CLEANUP=false
+[ "${LOG_ROOT:-}" ] || {
+	LOG_ROOT="$(mktemp -d)"
+	DEFAULT_CLEANUP=true
+}
+[ "${CLEANUP+set}" ] || CLEANUP="$DEFAULT_CLEANUP"
+
+cleanup () {
+	ret="$?"
+	set +x
+	"$CLEANUP" && rm -rf "$LOG_ROOT"
+	if [ "$ret" = "0" ]
+	then
+		echo "PASS"
+		exit 0
+	else
+		echo "FAIL" >&2
+		exit "$ret"
+	fi
+}
+trap 'cleanup' EXIT
+
+RECALL_PREFIX="$(readlink -e ${BASH_SOURCE%/*}/../)"
+. ${RECALL_PREFIX}/rc/.bashrc
+export LOG_ROOT RECALL_PREFIX
+cd "$RECALL_PREFIX"/tests
+
+set -x
+
+: "CLEANUP=$CLEANUP"
+: "LOG_ROOT=$LOG_ROOT"
+
+: "Capture : ls"
+(
+	set +x
+	CMD="ls -lah capture-ls-data"
+	+ $CMD
+	[ "$(head -n1 "$LOG_ROOT"/ls/*/info)" = "$CMD" ]
+	[ "$(@ ls)" = "$($CMD)" ]
+) >/dev/null
+
+: "Capture : sudo ls"
+(
+	set +x
+	CMD="sudo ls -lah capture-ls-data"
+	+ $CMD
+	[ "$(head -n1 "$LOG_ROOT"/sudo/ls/*/info)" = "$CMD" ]
+	[ "$(@ sudo ls)" = "$($CMD)" ]
+	[ "$(@ ls)" = "$($CMD)" ]
+) >/dev/null
+
+: "Recall : ls"
+(
+	set -a
+	RECALL_FZF_ENABLE=false
+	RECALL_VIPE_ENABLE=false
+	RECALL_ISELECT_ENABLE=false
+	set +x
+	@ -l ls
+	[ "$(@ -ln1 ls)" = "$(readlink -e "$LOG_ROOT"/sudo/ls/*)" ]
+) >/dev/null