Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Make all private routines in test_quota.c begin with "quota". Fix a test_quota.c segfault when setting a zero-quota. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | experimental |
Files: | files | file ages | folders |
SHA1: |
c0d0fc3a1cca7ee28db8add745c71baf |
User & Date: | drh 2010-09-01 14:45:16.000 |
Context
2010-09-01
| ||
14:58 | Variable name and comment changes to test_quota.c for clearer presentation. (check-in: 38ed1992c8 user: drh tags: experimental) | |
14:45 | Make all private routines in test_quota.c begin with "quota". Fix a test_quota.c segfault when setting a zero-quota. (check-in: c0d0fc3a1c user: drh tags: experimental) | |
14:35 | Add the sqlite3_quota_dump test command. Add a destructor argument on the sqlite3_quota_set() interface. (check-in: 7a624b5ae2 user: drh tags: experimental) | |
Changes
Changes to src/test_quota.c.
︙ | ︙ | |||
174 175 176 177 178 179 180 | ** ** [...] Matches one character from the enclosed list of ** characters. ** ** [^...] Matches one character not in the enclosed list. ** */ | | | | | 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 | ** ** [...] Matches one character from the enclosed list of ** characters. ** ** [^...] Matches one character not in the enclosed list. ** */ static int quotaStrglob(const char *zGlob, const char *z){ int c, c2; int invert; int seen; while( (c = (*(zGlob++)))!=0 ){ if( c=='*' ){ while( (c=(*(zGlob++))) == '*' || c=='?' ){ if( c=='?' && (*(z++))==0 ) return 0; } if( c==0 ){ return 1; }else if( c=='[' ){ while( *z && quotaStrglob(zGlob-1,z)==0 ){ z++; } return (*z)!=0; } while( (c2 = (*(z++)))!=0 ){ while( c2!=c ){ c2 = *(z++); if( c2==0 ) return 0; } if( quotaStrglob(zGlob,z) ) return 1; } return 0; }else if( c=='?' ){ if( (*(z++))==0 ) return 0; }else if( c=='[' ){ int prior_c = 0; seen = 0; |
︙ | ︙ | |||
245 246 247 248 249 250 251 | /* Find a quotaGroup given the filename. ** ** Return a pointer to the quotaGroup object. Return NULL if not found. */ static quotaGroup *quotaGroupFind(const char *zFilename){ quotaGroup *p; | | > | 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 | /* Find a quotaGroup given the filename. ** ** Return a pointer to the quotaGroup object. Return NULL if not found. */ static quotaGroup *quotaGroupFind(const char *zFilename){ quotaGroup *p; for(p=gQuota.pGroup; p && quotaStrglob(p->zPattern, zFilename)==0; p=p->pNext){} return p; } /* Translate an sqlite3_file* that is really a quotaConn* into ** the sqlite3_file* for the underlying original VFS. */ static sqlite3_file *quotaSubOpen(sqlite3_file *pConn){ |
︙ | ︙ | |||
657 658 659 660 661 662 663 | ){ quotaGroup *pGroup; quotaEnter(); pGroup = gQuota.pGroup; while( pGroup && strcmp(pGroup->zPattern, zPattern)!=0 ){ pGroup = pGroup->pNext; } | | > > > > | 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 | ){ quotaGroup *pGroup; quotaEnter(); pGroup = gQuota.pGroup; while( pGroup && strcmp(pGroup->zPattern, zPattern)!=0 ){ pGroup = pGroup->pNext; } if( pGroup==0 ){ int nPattern = strlen(zPattern); if( iLimit<=0 ){ quotaLeave(); return SQLITE_OK; } pGroup = sqlite3_malloc( sizeof(*pGroup) + nPattern + 1 ); if( pGroup==0 ){ quotaLeave(); return SQLITE_NOMEM; } memset(pGroup, 0, sizeof(*pGroup)); pGroup->zPattern = (char*)&pGroup[1]; |
︙ | ︙ |
Changes to test/quota.test.
︙ | ︙ | |||
163 164 165 166 167 168 169 170 171 172 173 | sqlite3_quota_set *test.db 0 {} quota_list } {} do_test quota-4.2 { sqlite3_quota_set *test.db 4096 {} quota_list } {*test.db} sqlite3_quota_shutdown finish_test | > > > > > > > > > > > > | 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | sqlite3_quota_set *test.db 0 {} quota_list } {} do_test quota-4.2 { sqlite3_quota_set *test.db 4096 {} quota_list } {*test.db} do_test quota-4.3 { sqlite3_quota_set *test2.db 0 {} quota_list } {*test.db} do_test quota-4.4 { sqlite3_quota_set *test2.db 12345 {} quota_list } {*test.db *test2.db} do_test quota-4.5 { sqlite3_quota_set *test.db 0 {} quota_list } {*test2.db} sqlite3_quota_shutdown finish_test |