mirror of
				https://github.com/stedolan/jq.git
				synced 2024-05-11 05:55:39 +00:00 
			
		
		
		
	Make test/shtest test of constant folding robust
Rather than testing that a constant expression produces so many instructions, test that a variety of of such expressions produce the same number of instructions. This will make future changes in the compiler less likely to break this test.
This commit is contained in:
		
							
								
								
									
										22
									
								
								tests/shtest
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								tests/shtest
									
									
									
									
									
								
							@@ -29,50 +29,46 @@ $VALGRIND $Q $JQ -Rne '[inputs] == ["a\u0000b", "c\u0000d", "e"]' $d/input
 | 
			
		||||
## move all of these into tests/all.test
 | 
			
		||||
 | 
			
		||||
# String constant folding (addition only)
 | 
			
		||||
n=`$VALGRIND $Q $JQ -n --debug-dump-disasm '"foo"' | wc -l`
 | 
			
		||||
if [ $n -ne 5 ]; then
 | 
			
		||||
    echo "Constant expression folding for strings didn't work"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
nref=`$VALGRIND $Q $JQ -n --debug-dump-disasm '"foo"' | wc -l`
 | 
			
		||||
 | 
			
		||||
# Numeric constant folding (not all ops yet)
 | 
			
		||||
n=`$VALGRIND $Q $JQ -n --debug-dump-disasm '1+1' | wc -l`
 | 
			
		||||
if [ $n -ne 5 ]; then
 | 
			
		||||
if [ $n -ne $nref ]; then
 | 
			
		||||
    echo "Constant expression folding for strings didn't work"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
n=`$VALGRIND $Q $JQ -n --debug-dump-disasm '1-1' | wc -l`
 | 
			
		||||
if [ $n -ne 5 ]; then
 | 
			
		||||
if [ $n -ne $nref ]; then
 | 
			
		||||
    echo "Constant expression folding for strings didn't work"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
n=`$VALGRIND $Q $JQ -n --debug-dump-disasm '2*3' | wc -l`
 | 
			
		||||
if [ $n -ne 5 ]; then
 | 
			
		||||
if [ $n -ne $nref ]; then
 | 
			
		||||
    echo "Constant expression folding for strings didn't work"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
n=`$VALGRIND $Q $JQ -n --debug-dump-disasm '9/3' | wc -l`
 | 
			
		||||
if [ $n -ne 5 ]; then
 | 
			
		||||
if [ $n -ne $nref ]; then
 | 
			
		||||
    echo "Constant expression folding for strings didn't work"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
n=`$VALGRIND $Q $JQ -n --debug-dump-disasm '9==3' | wc -l`
 | 
			
		||||
if [ $n -ne 5 ]; then
 | 
			
		||||
if [ $n -ne $nref ]; then
 | 
			
		||||
    echo "Constant expression folding for strings didn't work"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
n=`$VALGRIND $Q $JQ -n --debug-dump-disasm '9!=3' | wc -l`
 | 
			
		||||
if [ $n -ne 5 ]; then
 | 
			
		||||
if [ $n -ne $nref ]; then
 | 
			
		||||
    echo "Constant expression folding for strings didn't work"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
n=`$VALGRIND $Q $JQ -n --debug-dump-disasm '9<=3' | wc -l`
 | 
			
		||||
if [ $n -ne 5 ]; then
 | 
			
		||||
if [ $n -ne $nref ]; then
 | 
			
		||||
    echo "Constant expression folding for strings didn't work"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
n=`$VALGRIND $Q $JQ -n --debug-dump-disasm '9>=3' | wc -l`
 | 
			
		||||
if [ $n -ne 5 ]; then
 | 
			
		||||
if [ $n -ne $nref ]; then
 | 
			
		||||
    echo "Constant expression folding for strings didn't work"
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user