|
|
d22c23 |
This patch disables a test which caused failed assertion in tcl 8.6.3.
|
|
|
d22c23 |
According to sqlite upstream[1], this should be fixed in tcl 8.6.5.
|
|
|
d22c23 |
|
|
|
d22c23 |
[1] http://mailinglists.sqlite.org/cgi-bin/mailman/private/sqlite-users/2015-May/059518.html
|
|
|
d22c23 |
|
|
|
d22c23 |
diff -up sqlite-src-3130000/test/shell1.test.orig sqlite-src-3130000/test/shell1.test
|
|
|
d22c23 |
--- sqlite-src-3140100/test/shell1.test.orig 2016-08-12 02:17:02.000000000 +0200
|
|
|
d22c23 |
+++ sqlite-src-3140100/test/shell1.test 2016-08-15 15:00:59.869664051 +0200
|
|
|
d22c23 |
@@ -855,67 +855,67 @@ do_test shell1-4.6 {
|
|
|
d22c23 |
|
|
|
d22c23 |
# Test using arbitrary byte data with the shell via standard input/output.
|
|
|
d22c23 |
#
|
|
|
d22c23 |
-do_test shell1-5.0 {
|
|
|
d22c23 |
- #
|
|
|
d22c23 |
- # NOTE: Skip NUL byte because it appears to be incompatible with command
|
|
|
d22c23 |
- # shell argument parsing.
|
|
|
d22c23 |
- #
|
|
|
d22c23 |
- for {set i 1} {$i < 256} {incr i} {
|
|
|
d22c23 |
- #
|
|
|
d22c23 |
- # NOTE: Due to how the Tcl [exec] command works (i.e. where it treats
|
|
|
d22c23 |
- # command channels opened for it as textual ones), the carriage
|
|
|
d22c23 |
- # return character (and on Windows, the end-of-file character)
|
|
|
d22c23 |
- # cannot be used here.
|
|
|
d22c23 |
- #
|
|
|
d22c23 |
- if {$i==0x0D || ($tcl_platform(platform)=="windows" && $i==0x1A)} {
|
|
|
d22c23 |
- continue
|
|
|
d22c23 |
- }
|
|
|
d22c23 |
- if {$i>=0xE0 && $tcl_platform(os)=="OpenBSD"} continue
|
|
|
d22c23 |
- if {$i>=0xE0 && $i<=0xEF && $tcl_platform(os)=="Linux"} continue
|
|
|
d22c23 |
- set hex [format %02X $i]
|
|
|
d22c23 |
- set char [subst \\x$hex]; set oldChar $char
|
|
|
d22c23 |
- set escapes [list]
|
|
|
d22c23 |
- if {$tcl_platform(platform)=="windows"} {
|
|
|
d22c23 |
- #
|
|
|
d22c23 |
- # NOTE: On Windows, we need to escape all the whitespace characters,
|
|
|
d22c23 |
- # the alarm (\a) character, and those with special meaning to
|
|
|
d22c23 |
- # the SQLite shell itself.
|
|
|
d22c23 |
- #
|
|
|
d22c23 |
- set escapes [list \
|
|
|
d22c23 |
- \a \\a \b \\b \t \\t \n \\n \v \\v \f \\f \r \\r \
|
|
|
d22c23 |
- " " "\" \"" \" \\\" ' \"'\" \\ \\\\]
|
|
|
d22c23 |
- } else {
|
|
|
d22c23 |
- #
|
|
|
d22c23 |
- # NOTE: On Unix, we need to escape most of the whitespace characters
|
|
|
d22c23 |
- # and those with special meaning to the SQLite shell itself.
|
|
|
d22c23 |
- # The alarm (\a), backspace (\b), and carriage-return (\r)
|
|
|
d22c23 |
- # characters do not appear to require escaping on Unix. For
|
|
|
d22c23 |
- # the alarm and backspace characters, this is probably due to
|
|
|
d22c23 |
- # differences in the command shell. For the carriage-return,
|
|
|
d22c23 |
- # it is probably due to differences in how Tcl handles command
|
|
|
d22c23 |
- # channel end-of-line translations.
|
|
|
d22c23 |
- #
|
|
|
d22c23 |
- set escapes [list \
|
|
|
d22c23 |
- \t \\t \n \\n \v \\v \f \\f \
|
|
|
d22c23 |
- " " "\" \"" \" \\\" ' \"'\" \\ \\\\]
|
|
|
d22c23 |
- }
|
|
|
d22c23 |
- set char [string map $escapes $char]
|
|
|
d22c23 |
- set x [catchcmdex test.db ".print $char\n"]
|
|
|
d22c23 |
- set code [lindex $x 0]
|
|
|
d22c23 |
- set res [lindex $x 1]
|
|
|
d22c23 |
- if {$code ne "0"} {
|
|
|
d22c23 |
- error "failed with error: $res"
|
|
|
d22c23 |
- }
|
|
|
d22c23 |
- if {$res ne "$oldChar\n"} {
|
|
|
d22c23 |
- if {[llength $res] > 0} {
|
|
|
d22c23 |
- set got [format %02X [scan $res %c]]
|
|
|
d22c23 |
- } else {
|
|
|
d22c23 |
- set got <empty>
|
|
|
d22c23 |
- }
|
|
|
d22c23 |
- error "failed with byte $hex mismatch, got $got"
|
|
|
d22c23 |
- }
|
|
|
d22c23 |
- }
|
|
|
d22c23 |
-} {}
|
|
|
d22c23 |
+#do_test shell1-5.0 {
|
|
|
d22c23 |
+# #
|
|
|
d22c23 |
+# # NOTE: Skip NUL byte because it appears to be incompatible with command
|
|
|
d22c23 |
+# # shell argument parsing.
|
|
|
d22c23 |
+# #
|
|
|
d22c23 |
+# for {set i 1} {$i < 256} {incr i} {
|
|
|
d22c23 |
+# #
|
|
|
d22c23 |
+# # NOTE: Due to how the Tcl [exec] command works (i.e. where it treats
|
|
|
d22c23 |
+# # command channels opened for it as textual ones), the carriage
|
|
|
d22c23 |
+# # return character (and on Windows, the end-of-file character)
|
|
|
d22c23 |
+# # cannot be used here.
|
|
|
d22c23 |
+# #
|
|
|
d22c23 |
+# if {$i==0x0D || ($tcl_platform(platform)=="windows" && $i==0x1A)} {
|
|
|
d22c23 |
+# continue
|
|
|
d22c23 |
+# }
|
|
|
d22c23 |
+# if {$i>=0xE0 && $tcl_platform(os)=="OpenBSD"} continue
|
|
|
d22c23 |
+# if {$i>=0xE0 && $i<=0xEF && $tcl_platform(os)=="Linux"} continue
|
|
|
d22c23 |
+# set hex [format %02X $i]
|
|
|
d22c23 |
+# set char [subst \\x$hex]; set oldChar $char
|
|
|
d22c23 |
+# set escapes [list]
|
|
|
d22c23 |
+# if {$tcl_platform(platform)=="windows"} {
|
|
|
d22c23 |
+# #
|
|
|
d22c23 |
+# # NOTE: On Windows, we need to escape all the whitespace characters,
|
|
|
d22c23 |
+# # the alarm (\a) character, and those with special meaning to
|
|
|
d22c23 |
+# # the SQLite shell itself.
|
|
|
d22c23 |
+# #
|
|
|
d22c23 |
+# set escapes [list \
|
|
|
d22c23 |
+# \a \\a \b \\b \t \\t \n \\n \v \\v \f \\f \r \\r \
|
|
|
d22c23 |
+# " " "\" \"" \" \\\" ' \"'\" \\ \\\\]
|
|
|
d22c23 |
+# } else {
|
|
|
d22c23 |
+# #
|
|
|
d22c23 |
+# # NOTE: On Unix, we need to escape most of the whitespace characters
|
|
|
d22c23 |
+# # and those with special meaning to the SQLite shell itself.
|
|
|
d22c23 |
+# # The alarm (\a), backspace (\b), and carriage-return (\r)
|
|
|
d22c23 |
+# # characters do not appear to require escaping on Unix. For
|
|
|
d22c23 |
+# # the alarm and backspace characters, this is probably due to
|
|
|
d22c23 |
+# # differences in the command shell. For the carriage-return,
|
|
|
d22c23 |
+# # it is probably due to differences in how Tcl handles command
|
|
|
d22c23 |
+# # channel end-of-line translations.
|
|
|
d22c23 |
+# #
|
|
|
d22c23 |
+# set escapes [list \
|
|
|
d22c23 |
+# \t \\t \n \\n \v \\v \f \\f \
|
|
|
d22c23 |
+# " " "\" \"" \" \\\" ' \"'\" \\ \\\\]
|
|
|
d22c23 |
+# }
|
|
|
d22c23 |
+# set char [string map $escapes $char]
|
|
|
d22c23 |
+# set x [catchcmdex test.db ".print $char\n"]
|
|
|
d22c23 |
+# set code [lindex $x 0]
|
|
|
d22c23 |
+# set res [lindex $x 1]
|
|
|
d22c23 |
+# if {$code ne "0"} {
|
|
|
d22c23 |
+# error "failed with error: $res"
|
|
|
d22c23 |
+# }
|
|
|
d22c23 |
+# if {$res ne "$oldChar\n"} {
|
|
|
d22c23 |
+# if {[llength $res] > 0} {
|
|
|
d22c23 |
+# set got [format %02X [scan $res %c]]
|
|
|
d22c23 |
+# } else {
|
|
|
d22c23 |
+# set got <empty>
|
|
|
d22c23 |
+# }
|
|
|
d22c23 |
+# error "failed with byte $hex mismatch, got $got"
|
|
|
d22c23 |
+# }
|
|
|
d22c23 |
+# }
|
|
|
d22c23 |
+#} {}
|
|
|
d22c23 |
|
|
|
d22c23 |
# These test cases do not work on MinGW
|
|
|
d22c23 |
if 0 {
|