xref: /sqlite-3.40.0/test/zipfile.test (revision db0cb303)
1373dc3bbSdan# 2017 December 9
2373dc3bbSdan#
3373dc3bbSdan# The author disclaims copyright to this source code.  In place of
4373dc3bbSdan# a legal notice, here is a blessing:
5373dc3bbSdan#
6373dc3bbSdan#    May you do good and not evil.
7373dc3bbSdan#    May you find forgiveness for yourself and forgive others.
8373dc3bbSdan#    May you share freely, never taking more than you give.
9373dc3bbSdan#
10373dc3bbSdan#***********************************************************************
11373dc3bbSdan#
12373dc3bbSdan
13373dc3bbSdanset testdir [file dirname $argv0]
14373dc3bbSdansource $testdir/tester.tcl
15373dc3bbSdanset testprefix zipfile
16373dc3bbSdan
17373dc3bbSdanload_static_extension db zipfile
18373dc3bbSdan
19373dc3bbSdanforcedelete test.zip
20373dc3bbSdando_execsql_test 1.0 {
21373dc3bbSdan  CREATE VIRTUAL TABLE temp.zz USING zipfile('test.zip');
22373dc3bbSdan  PRAGMA table_info(zz);
23373dc3bbSdan} {
24373dc3bbSdan  0 name {} 0 {} 0
25373dc3bbSdan  1 mode {} 0 {} 0
26373dc3bbSdan  2 mtime {} 0 {} 0
27373dc3bbSdan  3 sz {} 0 {} 0
28373dc3bbSdan  4 data {} 0 {} 0
29373dc3bbSdan  5 method {} 0 {} 0
30373dc3bbSdan}
31373dc3bbSdan
32373dc3bbSdando_execsql_test 1.1 {
33373dc3bbSdan  INSERT INTO zz VALUES('f.txt', '-rw-r--r--', 1000000000, 5, 'abcde', 0);
34373dc3bbSdan  INSERT INTO zz VALUES('g.txt', '-rw-r--r--', 1000000002, 5, '12345', 0);
35373dc3bbSdan}
36373dc3bbSdan
37373dc3bbSdando_execsql_test 1.2 {
38373dc3bbSdan  SELECT name, mtime, data FROM zipfile('test.zip');
39373dc3bbSdan} {
40373dc3bbSdan  f.txt 1000000000 abcde
41*db0cb303Sdan  g.txt 1000000002 12345
42373dc3bbSdan}
43373dc3bbSdan
44373dc3bbSdando_execsql_test 1.3 {
45373dc3bbSdan  INSERT INTO zz VALUES('h.txt',
46373dc3bbSdan    '-rw-r--r--', 1000000004, 20, 'aaaaaaaaaabbbbbbbbbb', NULL
47373dc3bbSdan  );
48373dc3bbSdan}
49373dc3bbSdan
50373dc3bbSdando_execsql_test 1.4 {
51373dc3bbSdan  SELECT name, mtime, zipfile_uncompress(data, sz, method), method
52373dc3bbSdan  FROM zipfile('test.zip');
53373dc3bbSdan} {
54373dc3bbSdan  f.txt 1000000000 abcde 0
55373dc3bbSdan  g.txt 1000000002 12345 0
56*db0cb303Sdan  h.txt 1000000004 aaaaaaaaaabbbbbbbbbb 8
57373dc3bbSdan}
58373dc3bbSdan
59373dc3bbSdanfinish_test
60373dc3bbSdan
61