dev: errors: test generation improvements
This commit is contained in:
		
							parent
							
								
									90c41529ef
								
							
						
					
					
						commit
						d0a7154b4a
					
				| @ -1,8 +1,10 @@ | |||||||
| HLEDGER ?= hledger | HLEDGER ?= hledger | ||||||
| 
 | 
 | ||||||
| ERRORSCRIPTS=*.j *.timeclock # *.timedot *.csv | # j, csv, timeclock, timedot files which are executable
 | ||||||
|  | ERRORSCRIPTS := $$(find . -perm +rwx \( -name '*.j' -or -name '*.csv' -or -name '*.timeclock' -or -name '*.timedot' -or -name '*.sh' \)) | ||||||
| 
 | 
 | ||||||
| # Check error messages of hledger in $PATH against current error tests.
 | # Check error messages of $HLEDGER against current error tests.
 | ||||||
|  | # A few tests (csvstdinrules.sh) may use "hledger" in $PATH instead of $HLEDGER.
 | ||||||
| test: | test: | ||||||
| 	@printf "Running error message tests with hledger $$($(HLEDGER) --version | awk '{print $$2}'):\n" | 	@printf "Running error message tests with hledger $$($(HLEDGER) --version | awk '{print $$2}'):\n" | ||||||
| 	shelltest -w $(HLEDGER) *.test | 	shelltest -w $(HLEDGER) *.test | ||||||
|  | |||||||
| @ -21,14 +21,18 @@ TEST=$(echo "$SCRIPT" | sed -E 's/\.[^.]+$//').test | |||||||
| { | { | ||||||
| head -1 "$SCRIPT" | sed -E "s%#!/usr/bin/env -S (.*)%\$\$\$ \1 $SCRIPT%" | head -1 "$SCRIPT" | sed -E "s%#!/usr/bin/env -S (.*)%\$\$\$ \1 $SCRIPT%" | ||||||
| printf ">>>2 /" | printf ">>>2 /" | ||||||
| "./$SCRIPT" 2>&1 | sed -E \ | ./"$SCRIPT" 2>&1 | sed -E \ | ||||||
|   -e 's%(hledger: Error: ).*/\./(.*)%\1.*\2%' \ |  | ||||||
|   -e 's%/%\\/%g' \ |  | ||||||
|   -e 's/\^/\\^/g' \ |   -e 's/\^/\\^/g' \ | ||||||
|   -e 's/\$/\\$/g' \ |   -e 's/\$/\\$/g' \ | ||||||
|  |   -e 's/\+/\\+/g' \ | ||||||
|  |   -e 's/\*/\\*/g' \ | ||||||
|  |   -e 's/\[/\\[/g' \ | ||||||
|  |   -e 's/\]/\\]/g' \ | ||||||
|   -e 's/\(/\\(/g' \ |   -e 's/\(/\\(/g' \ | ||||||
|   -e 's/\)/\\)/g' \ |   -e 's/\)/\\)/g' \ | ||||||
|   -e 's/\|/\\|/g' \ |   -e 's/\|/\\|/g' \ | ||||||
|  |   -e 's%(hledger: Error: ).*/\./(.*)%\1.*\2%' \ | ||||||
|  |   -e 's%/%\\/%g' \ | ||||||
|   | head -c 300 |   | head -c 300 | ||||||
| printf "/\n>>>= 1\n" | printf "/\n>>>= 1\n" | ||||||
| } >"$TEST" | } >"$TEST" | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user