浏览代码

build(vhs): add parallel runner

Signed-off-by: Christina Sørensen <christina@cafkafk.com>
Christina Sørensen 2 年之前
父节点
当前提交
45567eb899
共有 4 个文件被更改,包括 258 次插入71 次删除
  1. 152 0
      tests/references/eza-blocksize.txt
  2. 15 0
      tests/tapes/eza-blocksize.tape
  3. 8 71
      tests/vhs-runner.sh
  4. 83 0
      tests/vhs-util.fish

+ 152 - 0
tests/references/eza-blocksize.txt

@@ -0,0 +1,152 @@
+>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+────────────────────────────────────────────────────────────────────────────────
+> cd tests/itest/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+────────────────────────────────────────────────────────────────────────────────
+> cd tests/itest
+>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+────────────────────────────────────────────────────────────────────────────────
+> cd tests/itest
+>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+────────────────────────────────────────────────────────────────────────────────
+> cd tests/itest
+> cargo run -q -- -l --blocksize
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+────────────────────────────────────────────────────────────────────────────────
+> cd tests/itest
+> cargo run -q -- -l --blocksize
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+────────────────────────────────────────────────────────────────────────────────
+> cd tests/itest
+> cargo run -q -- -l --blocksize
+.rw-r--r-- 0 0 ces 20 Aug 06:45 a
+.rw-r--r-- 0 0 ces 20 Aug 06:45 b
+.rw-r--r-- 0 0 ces 20 Aug 06:45 c
+.rw-r--r-- 0 0 ces 20 Aug 06:45 d
+.rw-r--r-- 0 0 ces 20 Aug 06:45 e
+.rw-r--r-- 0 0 ces 20 Aug 06:45 f
+.rw-r--r-- 0 0 ces 20 Aug 06:45 g
+.rw-r--r-- 0 0 ces 20 Aug 06:45 h
+.rw-r--r-- 0 0 ces 20 Aug 06:45 i
+.rw-r--r-- 0 0 ces 20 Aug 06:45 j
+.rw-r--r-- 0 0 ces 20 Aug 06:45 k
+.rw-r--r-- 0 0 ces 20 Aug 06:45 l
+.rw-r--r-- 0 0 ces 20 Aug 06:45 m
+.rw-r--r-- 0 0 ces 20 Aug 06:45 n
+.rw-r--r-- 0 0 ces 20 Aug 06:45 o
+.rw-r--r-- 0 0 ces 20 Aug 06:45 p
+────────────────────────────────────────────────────────────────────────────────
+> cd tests/itest
+> cargo run -q -- -l --blocksize
+.rw-r--r-- 0 0 ces 20 Aug 06:45 a
+.rw-r--r-- 0 0 ces 20 Aug 06:45 b
+.rw-r--r-- 0 0 ces 20 Aug 06:45 c
+.rw-r--r-- 0 0 ces 20 Aug 06:45 d
+.rw-r--r-- 0 0 ces 20 Aug 06:45 e
+.rw-r--r-- 0 0 ces 20 Aug 06:45 f
+.rw-r--r-- 0 0 ces 20 Aug 06:45 g
+.rw-r--r-- 0 0 ces 20 Aug 06:45 h
+.rw-r--r-- 0 0 ces 20 Aug 06:45 i
+.rw-r--r-- 0 0 ces 20 Aug 06:45 j
+.rw-r--r-- 0 0 ces 20 Aug 06:45 k
+.rw-r--r-- 0 0 ces 20 Aug 06:45 l
+.rw-r--r-- 0 0 ces 20 Aug 06:45 m
+.rw-r--r-- 0 0 ces 20 Aug 06:45 n
+.rw-r--r-- 0 0 ces 20 Aug 06:45 o
+.rw-r--r-- 0 0 ces 20 Aug 06:45 p
+────────────────────────────────────────────────────────────────────────────────

+ 15 - 0
tests/tapes/eza-blocksize.tape

@@ -0,0 +1,15 @@
+Output outfile
+
+Set Shell fish
+Sleep 2s
+
+Type "cd tests/itest"
+Enter
+Sleep 1s
+
+Type "cargo run -q -- -l --blocksize"
+Enter
+Sleep 3s
+
+Ctrl+D
+

+ 8 - 71
tests/vhs-runner.sh

@@ -9,85 +9,22 @@ set EZA_GREEN 0D0
 set EZA_RED D00
 set EZA_YELLOW DD0
 
-alias ffmpeg="echo skipping ffmpeg" 
-
-function print_msg -a ARG -a OP -a NAME -a MSG
-    # Write operator, e.g. [+]
-    # [*]: indicates neutral result
-    # [+]: indicates positive result
-    # [-]: indicates negative result
-    set_color reset
-    echo -n "[$OP] "
-
-    # Write source, e.g. [ blocksize ]:
-    set_color reset
-    set_color -b $ARG
-    set_color 000
-    echo -n "[ $NAME ]:"
-
-    # Write message, e.g.
-    set_color reset
-    echo " $MSG"
-
-    set_color reset
-end
-
-function run_test -d "Run VHS test" -a NAME
-
-    set FUNCTION_NAME "$NAME > run_test"
-
-    set NAME_TAPE "$NAME.tape"
-
-    set SUCCESS (print_msg "$EZA_GREEN" "+" "$FUNCTION_NAME" "Success")
-    set FAILURE (print_msg "$EZA_RED" "-" "$FUNCTION_NAME" "Failure")
-
-    set GEN_DIR $TEMP
-    set GEN_FILE $GEN_DIR/$NAME.txt
-    set GEN_FILE_ESCAPE (echo $GEN_FILE | sed "s/\//\\\\\//g")
-
-    print_msg $EZA_YELLOW "*" $FUNCTION_NAME "Testing..."
-
-    cat $TAPES/$NAME_TAPE | sed s/outfile/$GEN_FILE_ESCAPE/ | vhs &>/dev/null
-
-    cmp -s -- $REFERENCES/$NAME.txt $TEMP/$NAME.txt && echo $SUCCESS || echo $FAILURE
-end
-
-function gen_test -d "Generate VHS test" -a NAME
-
-    set FUNCTION_NAME "$NAME > gen_test"
-
-    set NAME_TAPE "$NAME.tape"
-
-    set SUCCESS (print_msg "$EZA_GREEN" "+" "$FUNCTION_NAME" "Success")
-    set FAILURE (print_msg "$EZA_RED" "-" "$FUNCTION_NAME" "Failure")
-
-    set GEN_DIR $REFERENCES
-    set GEN_FILE $GEN_DIR/$NAME.txt
-    set GEN_FILE_ESCAPE (echo $GEN_FILE | sed "s/\//\\\\\//g")
-
-    # The idea behind this is that it makes it easier for users of this system
-    # to change the reference. They should now only have to delete the old
-    # reference, and a new one will be generated.
-    if builtin test -f $GEN_FILE
-        print_msg $EZA_GREEN "+" $FUNCTION_NAME "$GEN_FILE exists"
-        return
-    end
-
-    print_msg $EZA_YELLOW "*" $FUNCTION_NAME "Generating..."
-
-    cat $TAPES/$NAME_TAPE | sed s/outfile/$GEN_FILE_ESCAPE/ | vhs &>/dev/null && echo $SUCCESS || echo $FAILURE
+function main
 
-end
+    # Fixes command line output
+    echo ""
 
-function main
     # TODO: automatic reference deletion
     for file in $TAPES/*
 
         set filename (basename $file .tape)
 
-        gen_test $filename
-        run_test $filename
+        command fish $TEST_DIR/vhs-util.fish $filename &
+
     end
+
+    wait 
+
 end
 
 main

+ 83 - 0
tests/vhs-util.fish

@@ -0,0 +1,83 @@
+#!/usr/bin/env fish
+
+set TEST_DIR tests
+set TAPES $TEST_DIR/tapes
+set REFERENCES $TEST_DIR/references
+set TEMP $TEST_DIR/tmp
+
+set EZA_GREEN 0D0
+set EZA_RED D00
+set EZA_YELLOW DD0
+
+alias ffmpeg="echo skipping ffmpeg" 
+
+function print_msg -a ARG -a OP -a NAME -a MSG
+    # Write operator, e.g. [+]
+    # [*]: indicates neutral result
+    # [+]: indicates positive result
+    # [-]: indicates negative result
+    set_color reset
+    echo -n "[$OP] "
+
+    # Write source, e.g. [ blocksize ]:
+    set_color reset
+    set_color -b $ARG
+    set_color 000
+    echo -n "[ $NAME ]:"
+
+    # Write message, e.g.
+    set_color reset
+    echo " $MSG"
+
+    set_color reset
+end
+
+function run_test -d "Run VHS test" -a NAME
+
+    set FUNCTION_NAME "$NAME > run_test"
+
+    set NAME_TAPE "$NAME.tape"
+
+    set SUCCESS (print_msg "$EZA_GREEN" "+" "$FUNCTION_NAME" "Success")
+    set FAILURE (print_msg "$EZA_RED" "-" "$FUNCTION_NAME" "Failure")
+
+    set GEN_DIR $TEMP
+    set GEN_FILE $GEN_DIR/$NAME.txt
+    set GEN_FILE_ESCAPE (echo $GEN_FILE | sed "s/\//\\\\\//g")
+
+    print_msg $EZA_YELLOW "*" $FUNCTION_NAME "Testing..."
+
+    cat $TAPES/$NAME_TAPE | sed s/outfile/$GEN_FILE_ESCAPE/ | vhs &>/dev/null
+
+    cmp -s -- $REFERENCES/$NAME.txt $TEMP/$NAME.txt && echo $SUCCESS || echo $FAILURE
+end
+
+function gen_test -d "Generate VHS test" -a NAME
+
+    set FUNCTION_NAME "$NAME > gen_test"
+
+    set NAME_TAPE "$NAME.tape"
+
+    set SUCCESS (print_msg "$EZA_GREEN" "+" "$FUNCTION_NAME" "Success")
+    set FAILURE (print_msg "$EZA_RED" "-" "$FUNCTION_NAME" "Failure")
+
+    set GEN_DIR $REFERENCES
+    set GEN_FILE $GEN_DIR/$NAME.txt
+    set GEN_FILE_ESCAPE (echo $GEN_FILE | sed "s/\//\\\\\//g")
+
+    # The idea behind this is that it makes it easier for users of this system
+    # to change the reference. They should now only have to delete the old
+    # reference, and a new one will be generated.
+    if builtin test -f $GEN_FILE
+        print_msg $EZA_GREEN "+" $FUNCTION_NAME "$GEN_FILE exists"
+        return
+    end
+
+    print_msg $EZA_YELLOW "*" $FUNCTION_NAME "Generating..."
+
+    cat $TAPES/$NAME_TAPE | sed s/outfile/$GEN_FILE_ESCAPE/ | vhs &>/dev/null && echo $SUCCESS || echo $FAILURE
+
+end
+
+gen_test $argv[1]
+run_test $argv[1]