Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a problem in an lsmtest test case caused by writing data in "text" mode instead of "binary". |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
3e56a79ad8754e6da3181883154fa1c8 |
User & Date: | dan 2017-07-12 14:03:13.542 |
Context
2017-07-12
| ||
14:10 | Clarification and simplification and result column naming logic. (check-in: 68824a439b user: drh tags: trunk) | |
14:03 | Fix a problem in an lsmtest test case caused by writing data in "text" mode instead of "binary". (check-in: 3e56a79ad8 user: dan tags: trunk) | |
12:19 | Compile cleanly with SQLITE_OMIT_UTF16. (check-in: 783100b801 user: drh tags: trunk) | |
Changes
Changes to ext/lsm1/lsm-test/lsmtest8.c.
︙ | ︙ | |||
81 82 83 84 85 86 87 | } } #include <stdio.h> void testReadFile(const char *zFile, int iOff, void *pOut, int nByte, int *pRc){ if( *pRc==0 ){ FILE *fd; | | | 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | } } #include <stdio.h> void testReadFile(const char *zFile, int iOff, void *pOut, int nByte, int *pRc){ if( *pRc==0 ){ FILE *fd; fd = fopen(zFile, "rb"); if( fd==0 ){ *pRc = 1; }else{ if( 0!=fseek(fd, iOff, SEEK_SET) ){ *pRc = 1; }else{ assert( nByte>=0 ); |
︙ | ︙ | |||
107 108 109 110 111 112 113 | int iOff, void *pOut, int nByte, int *pRc ){ if( *pRc==0 ){ FILE *fd; | | | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | int iOff, void *pOut, int nByte, int *pRc ){ if( *pRc==0 ){ FILE *fd; fd = fopen(zFile, "r+b"); if( fd==0 ){ *pRc = 1; }else{ if( 0!=fseek(fd, iOff, SEEK_SET) ){ *pRc = 1; }else{ assert( nByte>=0 ); |
︙ | ︙ | |||
153 154 155 156 157 158 159 | ** 1) Check that the checksum of the database is zCksum. ** 2) Write a few keys to the database. Then delete the same keys. ** 3) Check that the checksum is zCksum. ** 4) Flush the db to disk and run a checkpoint. ** 5) Check once more that the checksum is still zCksum. */ static void doLiveRecovery(const char *zDb, const char *zCksum, int *pRc){ | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 | ** 1) Check that the checksum of the database is zCksum. ** 2) Write a few keys to the database. Then delete the same keys. ** 3) Check that the checksum is zCksum. ** 4) Flush the db to disk and run a checkpoint. ** 5) Check once more that the checksum is still zCksum. */ static void doLiveRecovery(const char *zDb, const char *zCksum, int *pRc){ if( *pRc==LSM_OK ){ const DatasourceDefn defn = {TEST_DATASOURCE_RANDOM, 20, 25, 100, 500}; Datasource *pData; const char *zCopy = "testcopy.lsm"; char zCksum2[TEST_CKSUM_BYTES]; TestDb *pDb = 0; int rc; pData = testDatasourceNew(&defn); testCopyLsmdb(zDb, zCopy); rc = tdb_lsm_open("test_no_recovery=1", zCopy, 0, &pDb); if( rc==0 ){ ShmHeader *pHdr; lsm_db *db; testCksumDatabase(pDb, zCksum2); testCompareStr(zCksum, zCksum2, &rc); testWriteDatasourceRange(pDb, pData, 1, 10, &rc); testDeleteDatasourceRange(pDb, pData, 1, 10, &rc); /* Test that the two tree-headers are now consistent. */ pHdr = getShmHeader(zCopy); if( rc==0 && memcmp(&pHdr->hdr1, &pHdr->hdr2, sizeof(pHdr->hdr1)) ){ rc = 1; } testFree(pHdr); if( rc==0 ){ int nBuf = 64; db = tdb_lsm(pDb); lsm_config(db, LSM_CONFIG_AUTOFLUSH, &nBuf); lsm_begin(db, 1); lsm_commit(db, 0); rc = lsm_work(db, 0, 0, 0); } testCksumDatabase(pDb, zCksum2); testCompareStr(zCksum, zCksum2, &rc); } testDatasourceFree(pData); testClose(&pDb); testDeleteLsmdb(zCopy); *pRc = rc; } } static void doWriterCrash1(int *pRc){ const int nWrite = 2000; const int nStep = 10; const int iWriteStart = 20000; int rc = 0; |
︙ | ︙ |