mirror of
https://salsa.debian.org/xorg-team/lib/pixman
synced 2025-08-30 17:04:35 +00:00

Now scaling test should reliably detect problems in new scaling code. Maximum image size reduced to improve performance (more tests can be run per second) and also simplify detected errors analysis.
39 lines
1.0 KiB
Ruby
39 lines
1.0 KiB
Ruby
#!/usr/bin/env ruby
|
|
|
|
if not ARGV[0] or not ARGV[1] then
|
|
printf("Please provide two 'scaling-test' static binaries in the command line.\n\n")
|
|
printf("The first should be linked with the correct reference pixman library.\n")
|
|
printf("The second binrary should be linked with the pixman library to be tested.\n")
|
|
exit(0)
|
|
end
|
|
|
|
$MAX = 3000000
|
|
$MIN = 1
|
|
$AVG = 0
|
|
|
|
if `#{ARGV[0]} #{$MAX} 2>/dev/null` == `#{ARGV[1]} #{$MAX} 2>/dev/null` then
|
|
printf("test ok\n")
|
|
exit(0)
|
|
end
|
|
|
|
printf("test failed, bisecting...\n")
|
|
|
|
while $MAX != $MIN + 1 do
|
|
$AVG = (($MIN + $MAX) / 2).to_i
|
|
res1 = `#{ARGV[0]} #{$AVG} 2>/dev/null`
|
|
res2 = `#{ARGV[1]} #{$AVG} 2>/dev/null`
|
|
if res1 != res2 then
|
|
$MAX = $AVG
|
|
else
|
|
$MIN = $AVG
|
|
end
|
|
end
|
|
|
|
printf("-- ref --\n")
|
|
printf("%s\n", `#{ARGV[0]} -#{$MAX}`)
|
|
printf("-- new --\n")
|
|
printf("%s\n", `#{ARGV[1]} -#{$MAX}`)
|
|
|
|
printf("\nFailed test number is %d, you can reproduce the problematic conditions\n", $MAX)
|
|
printf("by running 'scaling-test -%d'\n", $MAX)
|