dev-db/sqlite: Fix tests on big-endian architectures (bug #630818).
authorArfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Thu, 28 Sep 2017 15:34:57 +0000 (17:34 +0200)
committerMike Gilbert <floppym@gentoo.org>
Thu, 28 Sep 2017 17:10:59 +0000 (13:10 -0400)
dev-db/sqlite/files/sqlite-3.20.1-full_tarball-tests-big-endian.patch [new file with mode: 0644]
dev-db/sqlite/sqlite-3.20.1-r1.ebuild

diff --git a/dev-db/sqlite/files/sqlite-3.20.1-full_tarball-tests-big-endian.patch b/dev-db/sqlite/files/sqlite-3.20.1-full_tarball-tests-big-endian.patch
new file mode 100644 (file)
index 0000000..427021d
--- /dev/null
@@ -0,0 +1,95 @@
+https://www.sqlite.org/src/info/87ccdf9cbb928455
+
+--- test/fts3conf.test
++++ test/fts3conf.test
+@@ -136,47 +136,49 @@
+ do_execsql_test 2.2.3 { SELECT * FROM t1 } {{a b c} {a b c}}
+ fts3_integrity 2.2.4 db t1
+ 
+-do_execsql_test 3.1 {
+-  CREATE VIRTUAL TABLE t3 USING fts4;
+-  REPLACE INTO t3(docid, content) VALUES (1, 'one two');
+-  SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'one'
+-} {X'0100000002000000'}
+-
+-do_execsql_test 3.2 {
+-  REPLACE INTO t3(docid, content) VALUES (2, 'one two three four');
+-  SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'four'
+-} {X'0200000003000000'}
+-
+-do_execsql_test 3.3 {
+-  REPLACE INTO t3(docid, content) VALUES (1, 'one two three four five six');
+-  SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'six'
+-} {X'0200000005000000'}
+-
+-do_execsql_test 3.4 {
+-  UPDATE OR REPLACE t3 SET docid = 2 WHERE docid=1;
+-  SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'six'
+-} {X'0100000006000000'}
+-
+-do_execsql_test 3.5 {
+-  UPDATE OR REPLACE t3 SET docid = 3 WHERE docid=2;
+-  SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'six'
+-} {X'0100000006000000'}
+-
+-do_execsql_test 3.6 {
+-  REPLACE INTO t3(docid, content) VALUES (3, 'one two');
+-  SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'one'
+-} {X'0100000002000000'}
+-
+-do_execsql_test 3.7 {
+-  REPLACE INTO t3(docid, content) VALUES (NULL, 'one two three four');
+-  REPLACE INTO t3(docid, content) VALUES (NULL, 'one two three four five six');
+-  SELECT docid FROM t3;
+-} {3 4 5}
+-
+-do_execsql_test 3.8 {
+-  UPDATE OR REPLACE t3 SET docid = 5, content='three four' WHERE docid = 4;
+-  SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'one'
+-} {X'0200000002000000'}
++if {$tcl_platform(byteOrder)=="littleEndian"} {
++  do_execsql_test 3.1 {
++    CREATE VIRTUAL TABLE t3 USING fts4;
++    REPLACE INTO t3(docid, content) VALUES (1, 'one two');
++    SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'one'
++  } {X'0100000002000000'}
++  
++  do_execsql_test 3.2 {
++    REPLACE INTO t3(docid, content) VALUES (2, 'one two three four');
++    SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'four'
++  } {X'0200000003000000'}
++  
++  do_execsql_test 3.3 {
++    REPLACE INTO t3(docid, content) VALUES (1, 'one two three four five six');
++    SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'six'
++  } {X'0200000005000000'}
++  
++  do_execsql_test 3.4 {
++    UPDATE OR REPLACE t3 SET docid = 2 WHERE docid=1;
++    SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'six'
++  } {X'0100000006000000'}
++  
++  do_execsql_test 3.5 {
++    UPDATE OR REPLACE t3 SET docid = 3 WHERE docid=2;
++    SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'six'
++  } {X'0100000006000000'}
++  
++  do_execsql_test 3.6 {
++    REPLACE INTO t3(docid, content) VALUES (3, 'one two');
++    SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'one'
++  } {X'0100000002000000'}
++  
++  do_execsql_test 3.7 {
++    REPLACE INTO t3(docid, content) VALUES(NULL,'one two three four');
++    REPLACE INTO t3(docid, content) VALUES(NULL,'one two three four five six');
++    SELECT docid FROM t3;
++  } {3 4 5}
++  
++  do_execsql_test 3.8 {
++    UPDATE OR REPLACE t3 SET docid = 5, content='three four' WHERE docid = 4;
++    SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'one'
++  } {X'0200000002000000'}
++}
+ 
+ #-------------------------------------------------------------------------
+ # Test that the xSavepoint is invoked correctly if the first write 
index 7b6ce7814c0f493a8116b7b58dc34675644414ca..137b7b0eeb213e557adc17b0a102b8582ae723e7 100644 (file)
@@ -51,6 +51,7 @@ src_prepare() {
        if full_tarball; then
                eapply -p0 "${FILESDIR}/${PN}-3.20.0-full_tarball-build.patch"
                eapply -p0 "${FILESDIR}/${PN}-3.20.1-full_tarball-csv-unsigned_char.patch"
+               eapply -p0 "${FILESDIR}/${PN}-3.20.1-full_tarball-tests-big-endian.patch"
 
                eapply_user