0

sqlite: Move //third_party/sqlite/src/ to //third_party/sqlite/patched/.

Currently, the original SQLite code is stored at
//third_party/sqlite/sqlite-src-* and Chrome's patched code is stored at
//third_party/sqlite/src/. This CL moves the patched code to a patched/
directory, as the new name better reflects what's going on.

This CL also paves the way for a future where the original SQLite code
is brought into //third_party/sqlite/src/ via DEPS.

Bug: 945204
Change-Id: I004906acde8f64ce5006c9bfa1902e6aa3c5227c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1537161
Commit-Queue: Victor Costan <pwnall@chromium.org>
Reviewed-by: Chris Mumford <cmumford@google.com>
Cr-Commit-Position: refs/heads/master@{#643946}
This commit is contained in:
Victor Costan
2019-03-25 19:13:17 +00:00
committed by Commit Bot
parent 9fa17d57a7
commit 538c14310d
1827 changed files with 166 additions and 164 deletions
sql
third_party/sqlite
BUILD.gnREADME.chromium
patched
Makefile.inMakefile.linux-gccMakefile.mscREADME.mdVERSIONaclocal.m4
art
autoconf
config.guessconfig.h.inconfig.subconfigureconfigure.ac
contrib
doc
ext
README.md
async
expert
fts1
fts2
fts3
fts5
extract_api_docs.tclfts5.hfts5Int.hfts5_aux.cfts5_buffer.cfts5_config.cfts5_expr.cfts5_hash.cfts5_index.cfts5_main.cfts5_storage.cfts5_tcl.cfts5_test_mi.cfts5_test_tok.cfts5_tokenize.cfts5_unicode2.cfts5_varint.cfts5_vocab.cfts5parse.ymkportersteps.tcl
test
tool
icu
lsm1
misc
rbu
repair
rtree
session
userauth
install-shltmain.shmagic.txtmain.mkmanifestmanifest.uuidmkso.sh
mptest
spec.templatesqlite.pc.insqlite3.1sqlite3.pc.in
src
alter.canalyze.cattach.cauth.cbackup.cbitvec.cbtmutex.cbtree.cbtree.hbtreeInt.hbuild.ccallback.ccomplete.cctime.cdate.cdbpage.cdbstat.cdelete.cexpr.cfault.cfkey.cfunc.cglobal.chash.chash.hhwtime.hin-operator.mdinsert.clegacy.cloadext.cmain.cmalloc.cmem0.cmem1.cmem2.cmem3.cmem5.cmemdb.cmemjournal.cmsvc.hmutex.cmutex.hmutex_noop.cmutex_unix.cmutex_w32.cnotify.cos.cos.hos_common.hos_setup.hos_unix.cos_win.cos_win.hpager.cpager.hparse.ypcache.cpcache.hpcache1.cpragma.cpragma.hprepare.cprintf.crandom.crecover.crecover.hrecover_varint.cresolve.crowset.cselect.cshell.c.inshell_icu_linux.cshell_icu_win.csqlite.h.insqlite3.rcsqlite3ext.hsqliteInt.hsqliteLimit.hstatus.ctable.ctclsqlite.ctest1.ctest2.ctest3.ctest4.ctest5.ctest6.ctest7.ctest8.ctest9.ctest_async.ctest_autoext.ctest_backup.ctest_bestindex.ctest_blob.ctest_btree.ctest_config.ctest_delete.ctest_demovfs.ctest_devsym.ctest_fs.ctest_func.ctest_hexio.ctest_init.ctest_intarray.ctest_intarray.htest_journal.ctest_loadext.ctest_malloc.ctest_md5.ctest_multiplex.ctest_multiplex.htest_mutex.ctest_onefile.ctest_osinst.ctest_pcache.ctest_quota.ctest_quota.htest_rtree.ctest_schema.ctest_server.ctest_sqllog.ctest_superlock.ctest_syscall.ctest_tclsh.ctest_tclvar.ctest_thread.ctest_vfs.ctest_vfstrace.ctest_windirent.ctest_windirent.htest_window.ctest_wsd.cthreads.ctokenize.ctreeview.ctrigger.cupdate.cupsert.cutf.cutil.cvacuum.cvdbe.cvdbe.hvdbeInt.hvdbeapi.cvdbeaux.cvdbeblob.cvdbemem.cvdbesort.cvdbetrace.cvtab.cvxworks.hwal.cwal.hwalker.cwhere.cwhereInt.hwherecode.cwhereexpr.cwindow.c
test
8_3_names.testaffinity2.testaffinity3.testaggerror.testaggnested.testalias.testall.testalter.testalter2.testalter3.testalter4.testalterauth.testalterauth2.testaltercol.testalterlegacy.testaltermalloc.testaltermalloc2.testaltertab.testaltertab2.testaltertab3.testamatch1.testanalyze.testanalyze3.testanalyze4.testanalyze5.testanalyze6.testanalyze7.testanalyze8.testanalyze9.testanalyzeA.testanalyzeB.testanalyzeC.testanalyzeD.testanalyzeE.testanalyzeF.testanalyzer1.testasync.testasync2.testasync3.testasync4.testasync5.testatof1.testatomic.testatomic2.testatrc.cattach.testattach2.testattach3.testattach4.testattachmalloc.testauth.testauth2.testauth3.testautoanalyze1.testautoinc.testautoindex1.testautoindex2.testautoindex3.testautoindex4.testautoindex5.testautovacuum.testautovacuum_ioerr2.testavtrans.testbackcompat.testbackup.testbackup2.testbackup4.testbackup5.testbackup_ioerr.testbackup_malloc.testbadutf.testbadutf2.testbc_common.tclbestindex1.testbestindex2.testbestindex3.testbestindex4.testbestindex5.testbestindex6.testbetween.testbigfile.testbigfile2.testbigmmap.testbigrow.testbigsort.testbind.testbindxfer.testbitvec.testblob.testboundary1.tclboundary1.testboundary2.tclboundary2.testboundary3.tclboundary3.testboundary4.tclboundary4.testbtree01.testbtree02.testbtreefault.testbusy.testcache.testcacheflush.testcachespill.testcapi2.testcapi3.testcapi3b.testcapi3c.testcapi3d.testcapi3e.testcast.testcffault.testcheck.testclose.testclosure01.testcoalesce.testcollate1.testcollate2.testcollate3.testcollate4.testcollate5.testcollate6.testcollate7.testcollate8.testcollate9.testcollateA.testcollateB.testcolmeta.testcolname.testconflict.testconflict2.testconflict3.testcontrib01.testcorrupt.testcorrupt2.testcorrupt3.testcorrupt4.testcorrupt5.testcorrupt6.testcorrupt7.testcorrupt8.testcorrupt9.testcorruptA.testcorruptB.testcorruptC.testcorruptD.testcorruptE.testcorruptF.testcorruptG.testcorruptH.testcorruptI.testcorruptJ.testcorruptK.testcorruptL.testcost.testcount.testcountofview.testcoveridxscan.testcrash.testcrash2.testcrash3.testcrash4.testcrash5.testcrash6.testcrash7.testcrash8.testcrashM.testcrashtest1.ccreatetab.testcse.testcsv01.testctime.testcursorhint.testcursorhint2.testdataversion1.testdate.testdate2.testdbfuzz.cdbfuzz001.testdbfuzz2-seed1.dbdbfuzz2.cdbpage.testdbstatus.testdbstatus2.testdefault.testdelete.testdelete2.testdelete3.testdelete4.testdelete_db.testdescidx1.testdescidx2.testdescidx3.testdiskfull.testdistinct.testdistinct2.testdistinctagg.teste_blobbytes.teste_blobclose.teste_blobopen.teste_blobwrite.teste_changes.teste_createtable.teste_delete.teste_droptrigger.teste_dropview.teste_expr.teste_fkey.teste_fts3.teste_insert.teste_reindex.teste_resolve.teste_select.teste_select2.teste_totalchanges.teste_update.teste_uri.teste_vacuum.teste_wal.teste_walauto.teste_walckpt.teste_walhook.testemptytable.testenc.testenc2.testenc3.testenc4.testeqp.testerrmsg.testeval.testexclusive.testexclusive2.testexec.testexists.testexpr.testextension01.testextraquick.testfallocate.testfilectrl.testfilefmt.testfkey1.testfkey2.testfkey3.testfkey4.testfkey5.testfkey6.testfkey7.testfkey8.testfkey_malloc.testfordelete.testformat4.testfts-9fd058691.testfts1a.testfts1b.testfts1c.testfts1d.testfts1e.testfts1f.testfts1i.testfts1j.testfts1k.testfts1l.testfts1m.testfts1n.testfts1o.testfts1porter.testfts2.testfts2a.testfts2b.testfts2c.testfts2d.testfts2e.testfts2f.testfts2g.testfts2h.testfts2i.testfts2j.testfts2k.testfts2l.testfts2m.testfts2n.testfts2o.testfts2p.testfts2q.testfts2r.testfts2token.testfts3.testfts3_common.tclfts3aa.testfts3ab.testfts3ac.testfts3ad.testfts3ae.testfts3af.testfts3ag.testfts3ah.testfts3ai.testfts3aj.testfts3ak.testfts3al.testfts3am.testfts3an.testfts3ao.testfts3atoken.testfts3auto.testfts3aux1.testfts3aux2.testfts3b.testfts3c.testfts3comp1.testfts3conf.testfts3corrupt.testfts3corrupt2.testfts3corrupt3.testfts3corrupt4.testfts3cov.testfts3d.testfts3defer.testfts3defer2.testfts3defer3.testfts3drop.testfts3e.testfts3expr.testfts3expr2.testfts3expr3.testfts3expr4.testfts3expr5.testfts3fault.testfts3fault2.testfts3first.testfts3fuzz001.testfts3join.testfts3malloc.testfts3matchinfo.testfts3misc.testfts3near.testfts3offsets.testfts3prefix.testfts3prefix2.testfts3query.testfts3rank.testfts3rnd.testfts3shared.testfts3snippet.testfts3sort.testfts3tok1.testfts3tok_err.testfts3varint.testfts4aa.testfts4check.testfts4content.testfts4docid.testfts4growth.testfts4growth2.testfts4incr.testfts4langid.testfts4lastrowid.testfts4merge.testfts4merge2.testfts4merge3.testfts4merge4.testfts4noti.testfts4onepass.testfts4opt.testfts4umlaut.testfts4unicode.testfull.testfunc.testfunc2.testfunc3.testfunc4.testfunc5.testfunc6.testfuzz-oss1.testfuzz.testfuzz2.testfuzz3.testfuzz4.testfuzz_common.tclfuzz_malloc.testfuzzcheck.cfuzzdata1.dbfuzzdata2.dbfuzzdata3.dbfuzzdata4.dbfuzzdata5.dbfuzzdata6.dbfuzzdata7.dbfuzzdata8.dbfuzzer1.testfuzzer2.testfuzzerfault.testgcfault.testgenesis.tclhaving.testhexlit.testhidden.testhook.testhook2.testicu.testieee754.testimposter1.testin.testin2.testin3.testin4.testin5.testin6.testincrblob.testincrblob2.testincrblob3.testincrblob4.testincrblob_err.testincrblobfault.testincrcorrupt.testincrvacuum.testincrvacuum2.testincrvacuum3.testincrvacuum_ioerr.testindex.testindex2.testindex3.testindex4.testindex5.testindex6.testindex7.testindex8.testindex9.testindexedby.testindexexpr1.testindexexpr2.testindexfault.testinit.testinsert.testinsert2.testinsert3.testinsert4.testinsert5.testinsertfault.testinstr.testinstrfault.testintarray.testinterrupt.testinterrupt2.testintpkey.testio.testioerr.testioerr2.testioerr3.testioerr4.testioerr5.testioerr6.testistrue.testjoin.testjoin2.testjoin3.testjoin4.testjoin5.testjoin6.testjournal1.testjournal2.testjournal3.testjrnlmode.testjrnlmode2.testjrnlmode3.testjson101.testjson102.testjson103.testjson104.testkeyword1.testkvtest.clastinsert.testlaststmtchanges.testlemon-test01.ylike.testlike2.testlike3.testlimit.testlimit2.testloadext.testloadext2.testlock.testlock2.testlock3.testlock4.testlock5.testlock6.testlock7.testlock_common.tcllookaside.testmain.testmake-where7.tclmalloc.testmalloc3.testmalloc4.testmalloc5.testmalloc6.testmalloc7.testmalloc8.testmalloc9.testmallocA.testmallocAll.testmallocB.testmallocC.testmallocD.testmallocE.testmallocF.testmallocG.testmallocH.testmallocI.testmallocJ.testmallocK.testmallocL.testmallocM.testmalloc_common.tclmalloctraceviewer.tclmanydb.testmem5.testmemdb.testmemdb1.testmemleak.testmemsubsys1.testmemsubsys2.testminmax.testminmax2.testminmax3.testminmax4.testmisc1.testmisc2.testmisc3.testmisc4.testmisc5.testmisc6.testmisc7.testmisc8.testmisuse.testmjournal.testmmap1.testmmap2.testmmap3.testmmap4.testmmapfault.testmmapwarm.testmultiplex.testmultiplex2.testmultiplex3.testmultiplex4.testmutex1.testmutex2.testnan.testnockpt.testnolock.testnormalize.testnotify1.testnotify2.testnotify3.testnotnull.testnull.testnumcast.testnumindex1.testoffset1.testopenv2.testoptfuzz-db01.coptfuzz-db01.txtoptfuzz.corderby1.testorderby2.testorderby3.testorderby4.testorderby5.testorderby6.testorderby7.testorderby8.testorderby9.testoserror.testossfuzz.cossshell.covfl.testpager1.testpager2.testpager3.testpager4.testpagerfault.testpagerfault2.testpagerfault3.testpageropt.testpagesize.testparser1.testpcache.testpcache2.testpercentile.testpermutations.testpg_common.tclpragma.testpragma2.testpragma3.testpragma4.testpragma5.testpragmafault.testprefixes.testprintf.testprintf2.testprogress.testptrchng.testpushdown.testqueryonly.testquick.testquota-glob.testquota.testquota2.testquote.testrandexpr1.tclrandexpr1.testrbu.testrdonly.testrecover.testrecover0.testrecover1.testrecover2.testregexp1.testregexp2.testreindex.testreleasetest.tclresetdb.testresolver01.testrollback.testrollback2.testrollbackfault.testrowallock.testrowhash.testrowid.testrowvalue.testrowvalue2.testrowvalue3.testrowvalue4.testrowvalue5.testrowvalue6.testrowvalue7.testrowvalue8.testrowvalue9.testrowvaluefault.testrtree.testrun-wordcount.shsavepoint.testsavepoint2.testsavepoint4.testsavepoint5.testsavepoint6.testsavepoint7.testsavepointfault.testscanstatus.testschema.testschema2.testschema3.testschema4.testschema5.testschema6.testschemafault.testsecuredel.testsecuredel2.testselect1.testselect2.testselect3.testselect4.testselect5.testselect6.testselect7.testselect8.testselect9.testselectA.testselectB.testselectC.testselectD.testselectE.testselectF.testselectG.testserver1.testsession.testsessionfuzz-data1.dbsessionfuzz.cshared.testshared2.testshared3.testshared4.testshared6.testshared7.testshared8.testshared9.testsharedA.testsharedB.testshared_err.testsharedlock.testshell1.testshell2.testshell3.testshell4.testshell5.testshell6.testshell7.testshell8.testshmlock.testshortread1.testshow_speedtest1_rtree.tclshrink.testsidedelete.testskipscan1.testskipscan2.testskipscan3.testskipscan5.testskipscan6.testsnapshot.testsnapshot2.testsnapshot3.testsnapshot4.testsnapshot_fault.testsnapshot_up.testsoak.testsoftheap1.testsort.testsort2.testsort3.testsort4.testsort5.testsorterref.testsortfault.testspeed1.testspeed1p.explainspeed1p.testspeed2.testspeed3.testspeed4.testspeed4p.explainspeed4p.testspeedtest1.cspellfix.testspellfix2.testspellfix3.testspellfix4.testsqldiff1.testsqllimits1.testsqllog.teststat.teststatfault.teststmt.teststmtvtab1.testsubjournal.testsubquery.testsubquery2.testsubselect.testsubstr.testsubtype1.testsuperlock.testswarmvtab.testswarmvtab2.testswarmvtab3.testswarmvtabfault.testsymlink.testsync.testsync2.testsyscall.testsysfault.testtabfunc01.testtable.testtableapi.testtableopts.testtclsqlite.testtempdb.testtempdb2.testtempfault.testtemptable.testtemptable2.testtemptable3.testtemptrigger.testtester.tclthread001.testthread002.testthread003.testthread004.testthread005.testthread1.testthread2.testthread_common.tclthreadtest1.cthreadtest2.cthreadtest3.cthreadtest4.ctime-wordcount.shtkt-02a8e81d44.testtkt-26ff0c2d1e.testtkt-2a5629202f.testtkt-2d1a5c67d.testtkt-2ea2425d34.testtkt-31338dca7e.testtkt-313723c356.testtkt-385a5b56b9.testtkt-38cb5df375.testtkt-3998683a16.testtkt-3a77c9714e.testtkt-3fe897352e.testtkt-4a03edc4c8.testtkt-4c86b126f2.testtkt-4dd95f6943.testtkt-4ef7e3cfca.testtkt-54844eea3f.testtkt-5d863f876e.testtkt-5e10420e8d.testtkt-5ee23731f.testtkt-6bfb98dfc0.testtkt-752e1646fc.testtkt-78e04e52ea.testtkt-7a31705a7e6.testtkt-7bbfb7d442.testtkt-80ba201079.testtkt-80e031a00f.testtkt-8454a207b9.testtkt-868145d012.testtkt-8c63ff0ec.testtkt-91e2e8ba6f.testtkt-94c04eaadb.testtkt-9a8b09f8e6.testtkt-9d68c883.testtkt-9f2eb3abac.testtkt-a7b7803e.testtkt-a8a0d2996a.testtkt-b1d3a2e531.testtkt-b351d95f9.testtkt-b72787b1.testtkt-b75a9ca6b0.testtkt-ba7cbfaedc.testtkt-bd484a090c.testtkt-bdc6bbbb38.testtkt-c48d99d690.testtkt-c694113d5.testtkt-cbd054fa6b.testtkt-d11f09d36e.testtkt-d635236375.testtkt-d82e3f3721.testtkt-f3e5abed55.testtkt-f67b41381a.testtkt-f777251dc7a.testtkt-f7b4edec.testtkt-f973c7ac31.testtkt-fa7bf5ec.testtkt-fc62af4523.testtkt-fc7bd6358f.testtkt1435.testtkt1443.testtkt1444.testtkt1449.testtkt1473.testtkt1501.testtkt1512.testtkt1514.testtkt1536.testtkt1537.testtkt1567.testtkt1644.testtkt1667.testtkt1873.testtkt2141.testtkt2192.testtkt2213.testtkt2251.testtkt2285.testtkt2332.testtkt2339.testtkt2391.testtkt2409.testtkt2450.testtkt2565.testtkt2640.testtkt2643.testtkt2686.testtkt2767.testtkt2817.testtkt2820.testtkt2822.testtkt2832.testtkt2854.testtkt2920.testtkt2927.testtkt2942.testtkt3080.testtkt3093.testtkt3121.testtkt3201.testtkt3292.testtkt3298.testtkt3334.testtkt3346.testtkt3357.testtkt3419.testtkt3424.testtkt3442.testtkt3457.testtkt3461.testtkt3493.testtkt3508.testtkt3522.testtkt3527.testtkt3541.testtkt3554.testtkt3581.testtkt35xx.testtkt3630.testtkt3718.testtkt3731.testtkt3757.testtkt3761.testtkt3762.testtkt3773.testtkt3791.testtkt3793.testtkt3810.testtkt3824.testtkt3832.testtkt3838.testtkt3841.testtkt3871.testtkt3879.testtkt3911.testtkt3918.testtkt3922.testtkt3929.testtkt3935.testtkt3992.testtkt3997.testtkt4018.testtokenize.testtpch01.testtrace.testtrace2.testtrace3.testtrans.testtrans2.testtrans3.testtransitive1.testtrigger1.testtrigger2.testtrigger3.testtrigger4.testtrigger5.testtrigger6.testtrigger7.testtrigger8.testtrigger9.testtriggerA.testtriggerB.testtriggerC.testtriggerD.testtriggerE.testtriggerF.testtriggerG.testtt3_checkpoint.ctt3_index.ctt3_lookaside1.ctt3_stress.ctt3_vacuum.ctypes.testtypes2.testtypes3.testunionvtab.testunionvtabfault.testunique.testunique2.testunixexcl.testunordered.testupdate.testupdate2.testupsert1.testupsert2.testupsert3.testupsert4.testupsertfault.testuri.testuri2.testuserauth01.testutf16align.testvacuum-into.testvacuum.testvacuum2.testvacuum3.testvacuum4.testvacuum5.testvacuummem.testvarint.testveryquick.testview.testvtab1.testvtab2.testvtab3.testvtab4.testvtab5.testvtab6.testvtab7.testvtab8.testvtab9.testvtabA.testvtabB.testvtabC.testvtabD.testvtabE.testvtabF.testvtabH.testvtabI.testvtabJ.testvtab_alter.testvtab_err.testvtab_shared.testvtabdrop.testwal.testwal2.testwal3.testwal4.testwal5.testwal6.testwal64k.testwal7.testwal8.testwal9.testwal_common.tclwalbak.testwalbig.testwalblock.testwalcksum.testwalcrash.testwalcrash2.testwalcrash3.testwalcrash4.testwalfault.testwalfault2.testwalhook.testwalmode.testwalnoshm.testwaloverwrite.testwalpersist.testwalprotocol.testwalprotocol2.testwalro.testwalro2.testwalrofault.testwalshared.testwalslow.testwalthread.testwalvfs.testwhere.testwhere2.testwhere3.testwhere4.testwhere5.testwhere6.testwhere7.testwhere8.testwhere9.testwhereA.testwhereB.testwhereC.testwhereD.testwhereE.testwhereF.testwhereG.testwhereH.testwhereI.testwhereJ.testwhereK.testwhereL.testwherefault.testwherelfault.testwherelimit.testwherelimit2.testwild001.testwin32heap.testwin32lock.testwin32longpath.testwin32nolock.testwindow1.testwindow2.tclwindow2.testwindow3.tclwindow3.testwindow4.tclwindow4.testwindow5.testwindow6.testwindowfault.testwith1.testwith2.testwith3.testwith4.testwithM.testwithout_rowid1.testwithout_rowid2.testwithout_rowid3.testwithout_rowid4.testwithout_rowid5.testwithout_rowid6.testwordcount.cwritecrash.testzeroblob.testzerodamage.testzipfile.testzipfile2.testzipfilefault.test
tool
vsixtest
patches
scripts

@ -16,7 +16,9 @@
#include "sql/database.h"
#include "sql/statement.h"
#include "third_party/sqlite/sqlite3.h"
#include "third_party/sqlite/src/src/recover.h"
// Needs to be included after "third_party/sqlite/sqlite.h".
#include "third_party/sqlite/patched/src/recover.h"
namespace sql {

@ -80,8 +80,8 @@ config("chromium_sqlite3_compile_options") {
# syntax, for instance SQLITE_OMIT_VIRTUALTABLE omits the virtual table
# syntax entirely. Missing an item usually results in syntax working but
# execution failing. Review:
# src/src/parse.py
# src/tool/mkkeywordhash.c
# patched/src/parse.py
# patched/tool/mkkeywordhash.c
# The flags below are recommended in the SQLite documentation, and disable
# features Chrome doesn't use.
@ -270,7 +270,7 @@ config("sqlite_warnings") {
]
}
if (is_win && !is_clang) {
cflags += [ "/wd4101" ] # 'zTrace' unreferenced variable in src/vdbe.c
cflags += [ "/wd4101" ] # 'zTrace' unreferenced variable in patched/vdbe.c
}
}
@ -279,15 +279,15 @@ component("chromium_sqlite3") {
visibility = [ ":*" ]
public = [
"patched/src/recover.h",
"sqlite3.h",
"src/src/recover.h",
]
sources = [
"amalgamation/sqlite3.h",
"patched/src/recover.c",
"patched/src/recover_varint.c",
"sqlite3_shim.c",
"src/src/recover.c",
"src/src/recover_varint.c",
]
inputs = [
@ -394,11 +394,11 @@ if (is_win || is_mac || is_linux) {
]
if (is_linux) {
sources += [ "src/src/shell_icu_linux.c" ]
sources += [ "patched/src/shell_icu_linux.c" ]
}
if (is_win) {
sources += [ "src/src/shell_icu_win.c" ]
sources += [ "patched/src/shell_icu_win.c" ]
}
deps = [
@ -422,7 +422,7 @@ if (is_win || is_mac || is_linux) {
fuzzer_test("sqlite3_ossfuzz_fuzzer") {
include_dirs = [ "." ]
sources = [
"src/test/ossfuzz.c",
"patched/test/ossfuzz.c",
]
deps = [
":sqlite",
@ -582,7 +582,7 @@ if (use_fuzzing_engine) {
fuzzer_test("sqlite3_dbfuzz2_fuzzer") {
include_dirs = [ "." ]
sources = [
"src/test/dbfuzz2.c",
"patched/test/dbfuzz2.c",
]
deps = [
":sqlite",

@ -37,7 +37,7 @@ The directory structure is as follows. Files common to all third_party projects
* patches/ - Our patches to the currently used release, formatted by git using
the UNIX mailbox format. The patches can be applied with git am,
and created with git format-patch.
* src/ - The currently used source code, with our patches applied.
* patched/ - The currently used source code, with our patches applied.
* amalgamation/ - The supported method of using SQLite is via an amalgamation
build, which merges all the code in one .c file and one .h
file. See https://www.sqlite.org/amalgamation.html
@ -51,20 +51,20 @@ The directory structure is as follows. Files common to all third_party projects
2) Making changes to Chromium SQLite.
third_party/sqlite/src is the patched source from SQLite. This is used to
third_party/sqlite/patched is the patched source from SQLite. This is used to
generate the amalgamation, a concatenation of all of the files into a giant
sqlite3.c. To prototype, edit in src/, then call
sqlite3.c. To prototype, edit in patched/, then call
./scripts/generate_amalgamation.sh
to regenerate sqlite3.c. The code in src/ is much easier to edit, and the
to regenerate sqlite3.c. The code in patched/ is much easier to edit, and the
SQLite test framework can easily be run. During development it may be
convenient to modify BUILD.gn based on src/main.mk to just pull in the src/
files rather than sqlite3.c.
convenient to modify BUILD.gn based on patched/main.mk to just pull in the
patched/ files rather than sqlite3.c.
Once your patch is complete, squash it down into a reasonable CL, then
re-generate the patches. This is a truncated version of the import flow. The
following is written like a shell script to allow copy/paste to a shell, ignore
comments and change the obvious lines. These instructions should work on Linux
or OSX. They may assume a modern version of git (I'm using 2.2.1).
or OSX. They may assume a modern version of git.
# The steps below are easier if done in the SQLite directory.
cd third_party/sqlite
@ -76,22 +76,22 @@ export GNU_SED=sed # OSX: "brew install gnu-sed", then use "gsed" here.
#### Create a reference branch.
git new-branch sqlite-base
git rm -rf src
cp -r sqlite-src-${BASE}/ src
git rm -rf patched
cp -r sqlite-src-${BASE}/ patched
# Clean up trailing whitespace and CRLF so any patches look clean.
find src/ -type f -not -iname "*.db" -not -iname "*.eps" -not -iname "*.ico" \
-not -iname "*.jpg" -not -iname "*.pfx" -not -iname "*.png" \
-not -iname "*.tiff" -not -iname "*.vsix" \
find patched/ -type f -not -iname "*.db" -not -iname "*.eps" \
-not -iname "*.ico" -not -iname "*.jpg" -not -iname "*.pfx" \
-not -iname "*.png" -not -iname "*.tiff" -not -iname "*.vsix" \
-exec ${GNU_SED} --in-place 's/[[:space:]]\+$//' {} \+
git add src/
git clean -i -d -x src # Make sure no file is git-ignored.
git commit -m "Squash: Reset SQLite src/ to sqlite-src-${BASE}."
git add patched/
git clean -i -d -x patched # Make sure no file is git-ignored.
git commit -m "Squash: Reset SQLite patched/ to sqlite-src-${BASE}."
# This branch will not build. It will be used for rebasing, then deleted.
#### Create a reference branch with patches applied.
git new-branch --upstream-current sqlite-dev
git am --keep-non-patch --ignore-space-change patches/*.patch
git diff origin/master src/
git diff origin/master patched/
# This branch should be identical to master.
@ -185,38 +185,38 @@ git cl upload # Have the new code in a separate (impossible to review) CL.
#### Create a branch for the old SQLite release's upstream version.
git new-branch sqlite-old-base
git rm -rf src
cp -r sqlite-src-${OLD}/ src
git rm -rf patached
cp -r sqlite-src-${OLD}/ patched
# Clean up trailing whitespace and CRLF so any patches look clean.
find src/ -type f -not -iname "*.db" -not -iname "*.eps" -not -iname "*.ico" \
-not -iname "*.jpg" -not -iname "*.pfx" -not -iname "*.png" \
-not -iname "*.tiff" -not -iname "*.vsix" \
find patched/ -type f -not -iname "*.db" -not -iname "*.eps" \
-not -iname "*.ico" -not -iname "*.jpg" -not -iname "*.pfx" \
-not -iname "*.png" -not -iname "*.tiff" -not -iname "*.vsix" \
-exec ${GNU_SED} --in-place 's/[[:space:]]\+$//' {} \+
git add src/
git clean -i -d -x src # Make sure no file is git-ignored.
git commit -m "Squash: Reset SQLite src/ to sqlite-src-${OLD}."
git add patched/
git clean -i -d -x patched # Make sure no file is git-ignored.
git commit -m "Squash: Reset SQLite patched/ to sqlite-src-${OLD}."
# This branch will not build. It will be used for rebasing, then deleted.
#### Create a branch for our old SQLite code, with patches mapped to commits.
git new-branch --upstream-current sqlite-old
git am --keep-non-patch --ignore-space-change patches/*.patch
git diff origin/master src/
git diff origin/master patched/
# This branch should be identical to master.
#### Create a branch for the new SQLite release's upstream version.
git checkout sqlite-old-base
git new-branch --upstream-current sqlite-new-base
git rm -rf src
git rm -rf patched
git checkout sqlite-new-upstream -- sqlite-src-${NEW}/
git mv sqlite-src-${NEW}/ src
git mv sqlite-src-${NEW}/ patched
# Clean up trailing whitespace and CRLF so any patches look clean.
find src/ -type f -not -iname "*.db" -not -iname "*.eps" -not -iname "*.ico" \
-not -iname "*.jpg" -not -iname "*.pfx" -not -iname "*.png" \
-not -iname "*.tiff" -not -iname "*.vsix" \
find patched/ -type f -not -iname "*.db" -not -iname "*.eps" \
-not -iname "*.ico" -not -iname "*.jpg" -not -iname "*.pfx" \
-not -iname "*.png" -not -iname "*.tiff" -not -iname "*.vsix" \
-exec ${GNU_SED} --in-place 's/[[:space:]]\+$//' {} \+
git add src/
git clean -i -d -x src # Make sure no file is git-ignored.
git commit -m "Squash: Reset SQLite src/ to sqlite-src-${NEW}."
git add patched/
git clean -i -d -x patched # Make sure no file is git-ignored.
git commit -m "Squash: Reset SQLite patched/ to sqlite-src-${NEW}."
# This branch will not build. It will be used for rebasing, then deleted.
#### Create a branch for updating our patches.
@ -235,9 +235,9 @@ git cl format amalgamation/rename_exports.h
#### Copy any new entries to the seed-corpus for dbfuzz2.
# We use a set of seed databases for fuzzing SQLite's resilience to database
# corruption. Sometimes, new seed databases are added upstream.
# Find any files of the pattern src/test/dbfuzz2-seed*.db, and copy them to
# Find any files of the pattern patched/test/dbfuzz2-seed*.db, and copy them to
# the fuzz/db_corpus directory.
cp --no-clobber src/test/dbfuzz2-seed*.db fuzz/db_corpus
cp --no-clobber patched/test/dbfuzz2-seed*.db fuzz/db_corpus
#### Validate the upgrade.
# The goal is to have a set of reasonably-independent CLs which can be

Before

(image error) Size: 2.2 KiB

After

(image error) Size: 2.2 KiB

Before

(image error) Size: 79 KiB

After

(image error) Size: 79 KiB

Some files were not shown because too many files have changed in this diff Show More