@cloudant/couchbackup 2.9.13-SNAPSHOT.143 → 2.9.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.scannerwork/report-task.txt +2 -2
- package/.scannerwork/scanner-report/analysis-warnings.pb +2 -2
- package/.scannerwork/scanner-report/changesets-19.pb +1 -0
- package/.scannerwork/scanner-report/changesets-2.pb +1 -0
- package/.scannerwork/scanner-report/changesets-20.pb +1 -0
- package/.scannerwork/scanner-report/changesets-21.pb +1 -0
- package/.scannerwork/scanner-report/changesets-22.pb +1 -0
- package/.scannerwork/scanner-report/changesets-23.pb +1 -0
- package/.scannerwork/scanner-report/changesets-38.pb +1 -0
- package/.scannerwork/scanner-report/changesets-41.pb +1 -0
- package/.scannerwork/scanner-report/changesets-57.pb +1 -0
- package/.scannerwork/scanner-report/changesets-58.pb +1 -0
- package/.scannerwork/scanner-report/changesets-61.pb +1 -0
- package/.scannerwork/scanner-report/changesets-62.pb +1 -0
- package/.scannerwork/scanner-report/changesets-63.pb +1 -0
- package/.scannerwork/scanner-report/component-1.pb +2 -2
- package/.scannerwork/scanner-report/component-11.pb +1 -1
- package/.scannerwork/scanner-report/component-12.pb +1 -1
- package/.scannerwork/scanner-report/component-14.pb +1 -1
- package/.scannerwork/scanner-report/component-15.pb +1 -1
- package/.scannerwork/scanner-report/component-16.pb +1 -1
- package/.scannerwork/scanner-report/component-17.pb +1 -1
- package/.scannerwork/scanner-report/component-18.pb +1 -1
- package/.scannerwork/scanner-report/component-19.pb +1 -0
- package/.scannerwork/scanner-report/component-2.pb +1 -0
- package/.scannerwork/scanner-report/component-20.pb +1 -0
- package/.scannerwork/scanner-report/component-21.pb +1 -0
- package/.scannerwork/scanner-report/component-22.pb +1 -0
- package/.scannerwork/scanner-report/component-23.pb +1 -0
- package/.scannerwork/scanner-report/component-35.pb +1 -1
- package/.scannerwork/scanner-report/component-36.pb +1 -1
- package/.scannerwork/scanner-report/component-37.pb +1 -1
- package/.scannerwork/scanner-report/component-38.pb +1 -0
- package/.scannerwork/scanner-report/component-39.pb +1 -1
- package/.scannerwork/scanner-report/component-40.pb +1 -1
- package/.scannerwork/scanner-report/component-41.pb +1 -0
- package/.scannerwork/scanner-report/component-42.pb +1 -1
- package/.scannerwork/scanner-report/component-43.pb +1 -1
- package/.scannerwork/scanner-report/component-44.pb +1 -1
- package/.scannerwork/scanner-report/component-45.pb +1 -1
- package/.scannerwork/scanner-report/component-46.pb +1 -1
- package/.scannerwork/scanner-report/component-47.pb +1 -1
- package/.scannerwork/scanner-report/component-48.pb +1 -1
- package/.scannerwork/scanner-report/component-5.pb +1 -1
- package/.scannerwork/scanner-report/component-50.pb +1 -1
- package/.scannerwork/scanner-report/component-51.pb +1 -1
- package/.scannerwork/scanner-report/component-52.pb +1 -1
- package/.scannerwork/scanner-report/component-54.pb +1 -1
- package/.scannerwork/scanner-report/component-55.pb +1 -1
- package/.scannerwork/scanner-report/component-56.pb +1 -1
- package/.scannerwork/scanner-report/component-57.pb +1 -0
- package/.scannerwork/scanner-report/component-58.pb +1 -0
- package/.scannerwork/scanner-report/component-59.pb +1 -1
- package/.scannerwork/scanner-report/component-60.pb +1 -1
- package/.scannerwork/scanner-report/component-61.pb +1 -0
- package/.scannerwork/scanner-report/component-62.pb +1 -1
- package/.scannerwork/scanner-report/component-63.pb +1 -0
- package/.scannerwork/scanner-report/component-64.pb +1 -1
- package/.scannerwork/scanner-report/component-8.pb +1 -1
- package/.scannerwork/scanner-report/coverages-11.pb +0 -0
- package/.scannerwork/scanner-report/coverages-12.pb +0 -0
- package/.scannerwork/scanner-report/coverages-14.pb +0 -0
- package/.scannerwork/scanner-report/coverages-15.pb +0 -0
- package/.scannerwork/scanner-report/coverages-16.pb +0 -0
- package/.scannerwork/scanner-report/coverages-17.pb +0 -0
- package/.scannerwork/scanner-report/coverages-18.pb +0 -0
- package/.scannerwork/scanner-report/coverages-2.pb +0 -0
- package/.scannerwork/scanner-report/coverages-20.pb +0 -0
- package/.scannerwork/scanner-report/coverages-21.pb +0 -0
- package/.scannerwork/scanner-report/coverages-35.pb +0 -0
- package/.scannerwork/scanner-report/coverages-36.pb +0 -0
- package/.scannerwork/scanner-report/coverages-37.pb +0 -0
- package/.scannerwork/scanner-report/{coverages-34.pb → coverages-38.pb} +0 -0
- package/.scannerwork/scanner-report/coverages-39.pb +0 -0
- package/.scannerwork/scanner-report/coverages-40.pb +0 -0
- package/.scannerwork/scanner-report/coverages-41.pb +0 -0
- package/.scannerwork/scanner-report/coverages-42.pb +0 -0
- package/.scannerwork/scanner-report/coverages-43.pb +0 -0
- package/.scannerwork/scanner-report/coverages-44.pb +0 -0
- package/.scannerwork/scanner-report/coverages-45.pb +0 -0
- package/.scannerwork/scanner-report/coverages-46.pb +0 -0
- package/.scannerwork/scanner-report/coverages-47.pb +0 -0
- package/.scannerwork/scanner-report/coverages-48.pb +0 -0
- package/.scannerwork/scanner-report/coverages-5.pb +0 -0
- package/.scannerwork/scanner-report/coverages-51.pb +0 -0
- package/.scannerwork/scanner-report/coverages-52.pb +0 -0
- package/.scannerwork/scanner-report/coverages-54.pb +0 -0
- package/.scannerwork/scanner-report/coverages-55.pb +0 -0
- package/.scannerwork/scanner-report/coverages-56.pb +0 -0
- package/.scannerwork/scanner-report/coverages-57.pb +0 -0
- package/.scannerwork/scanner-report/coverages-58.pb +0 -0
- package/.scannerwork/scanner-report/coverages-59.pb +0 -0
- package/.scannerwork/scanner-report/coverages-60.pb +0 -0
- package/.scannerwork/scanner-report/coverages-61.pb +0 -0
- package/.scannerwork/scanner-report/coverages-62.pb +0 -0
- package/.scannerwork/scanner-report/coverages-63.pb +0 -0
- package/.scannerwork/scanner-report/coverages-64.pb +0 -0
- package/.scannerwork/scanner-report/duplications-11.pb +2 -0
- package/.scannerwork/scanner-report/duplications-12.pb +2 -0
- package/.scannerwork/scanner-report/duplications-15.pb +0 -2
- package/.scannerwork/scanner-report/duplications-17.pb +0 -3
- package/.scannerwork/scanner-report/duplications-21.pb +3 -0
- package/.scannerwork/scanner-report/duplications-37.pb +2 -0
- package/.scannerwork/scanner-report/duplications-42.pb +3 -0
- package/.scannerwork/scanner-report/duplications-43.pb +0 -2
- package/.scannerwork/scanner-report/duplications-45.pb +2 -0
- package/.scannerwork/scanner-report/duplications-55.pb +0 -2
- package/.scannerwork/scanner-report/duplications-59.pb +0 -2
- package/.scannerwork/scanner-report/duplications-60.pb +1 -1
- package/.scannerwork/scanner-report/duplications-61.pb +2 -0
- package/.scannerwork/scanner-report/issues-36.pb +2 -2
- package/.scannerwork/scanner-report/issues-39.pb +3 -0
- package/.scannerwork/scanner-report/measures-11.pb +0 -0
- package/.scannerwork/scanner-report/measures-12.pb +0 -0
- package/.scannerwork/scanner-report/measures-14.pb +0 -0
- package/.scannerwork/scanner-report/measures-15.pb +0 -0
- package/.scannerwork/scanner-report/measures-16.pb +0 -0
- package/.scannerwork/scanner-report/measures-17.pb +0 -0
- package/.scannerwork/scanner-report/measures-18.pb +0 -0
- package/.scannerwork/scanner-report/measures-19.pb +0 -0
- package/.scannerwork/scanner-report/measures-2.pb +0 -0
- package/.scannerwork/scanner-report/measures-20.pb +0 -0
- package/.scannerwork/scanner-report/measures-21.pb +0 -0
- package/.scannerwork/scanner-report/measures-35.pb +0 -0
- package/.scannerwork/scanner-report/measures-36.pb +0 -0
- package/.scannerwork/scanner-report/measures-37.pb +0 -0
- package/.scannerwork/scanner-report/measures-38.pb +0 -0
- package/.scannerwork/scanner-report/measures-39.pb +0 -0
- package/.scannerwork/scanner-report/measures-40.pb +0 -0
- package/.scannerwork/scanner-report/measures-41.pb +0 -0
- package/.scannerwork/scanner-report/measures-42.pb +0 -0
- package/.scannerwork/scanner-report/measures-43.pb +0 -0
- package/.scannerwork/scanner-report/measures-44.pb +0 -0
- package/.scannerwork/scanner-report/measures-45.pb +0 -0
- package/.scannerwork/scanner-report/measures-46.pb +0 -0
- package/.scannerwork/scanner-report/measures-47.pb +0 -0
- package/.scannerwork/scanner-report/measures-48.pb +0 -0
- package/.scannerwork/scanner-report/measures-5.pb +0 -0
- package/.scannerwork/scanner-report/measures-50.pb +0 -0
- package/.scannerwork/scanner-report/measures-51.pb +0 -0
- package/.scannerwork/scanner-report/measures-52.pb +0 -0
- package/.scannerwork/scanner-report/measures-54.pb +0 -0
- package/.scannerwork/scanner-report/measures-55.pb +0 -0
- package/.scannerwork/scanner-report/measures-56.pb +0 -0
- package/.scannerwork/scanner-report/measures-57.pb +0 -0
- package/.scannerwork/scanner-report/measures-58.pb +15 -0
- package/.scannerwork/scanner-report/measures-59.pb +0 -0
- package/.scannerwork/scanner-report/measures-60.pb +0 -0
- package/.scannerwork/scanner-report/measures-61.pb +0 -0
- package/.scannerwork/scanner-report/measures-62.pb +0 -0
- package/.scannerwork/scanner-report/measures-63.pb +0 -0
- package/.scannerwork/scanner-report/measures-64.pb +0 -0
- package/.scannerwork/scanner-report/measures-8.pb +0 -0
- package/.scannerwork/scanner-report/metadata.pb +0 -0
- package/.scannerwork/scanner-report/source-11.txt +147 -64
- package/.scannerwork/scanner-report/source-12.txt +167 -45
- package/.scannerwork/scanner-report/source-14.txt +47 -47
- package/.scannerwork/scanner-report/source-15.txt +69 -262
- package/.scannerwork/scanner-report/source-16.txt +14 -603
- package/.scannerwork/scanner-report/source-17.txt +35 -91
- package/.scannerwork/scanner-report/source-18.txt +40 -128
- package/.scannerwork/scanner-report/source-19.txt +36 -0
- package/.scannerwork/scanner-report/source-2.txt +114 -0
- package/.scannerwork/scanner-report/source-20.txt +625 -0
- package/.scannerwork/scanner-report/source-21.txt +119 -0
- package/.scannerwork/scanner-report/source-35.txt +347 -10
- package/.scannerwork/scanner-report/source-36.txt +124 -29
- package/.scannerwork/scanner-report/source-37.txt +121 -118
- package/.scannerwork/scanner-report/{source-34.txt → source-38.txt} +10 -9
- package/.scannerwork/scanner-report/source-39.txt +31 -40
- package/.scannerwork/scanner-report/source-40.txt +19 -62
- package/.scannerwork/scanner-report/{source-13.txt → source-41.txt} +7 -14
- package/.scannerwork/scanner-report/source-42.txt +107 -90
- package/.scannerwork/scanner-report/source-43.txt +67 -50
- package/.scannerwork/scanner-report/source-44.txt +142 -40
- package/.scannerwork/scanner-report/source-45.txt +269 -105
- package/.scannerwork/scanner-report/source-46.txt +133 -32
- package/.scannerwork/scanner-report/source-47.txt +39 -14
- package/.scannerwork/scanner-report/source-48.txt +56 -90
- package/.scannerwork/scanner-report/source-5.txt +403 -20
- package/.scannerwork/scanner-report/source-50.txt +509 -41
- package/.scannerwork/scanner-report/source-51.txt +21 -84
- package/.scannerwork/scanner-report/source-52.txt +14 -63
- package/.scannerwork/scanner-report/source-54.txt +20 -138
- package/.scannerwork/scanner-report/source-55.txt +113 -76
- package/.scannerwork/scanner-report/source-56.txt +241 -78
- package/.scannerwork/scanner-report/source-57.txt +118 -0
- package/.scannerwork/scanner-report/source-58.txt +104 -0
- package/.scannerwork/scanner-report/source-59.txt +65 -175
- package/.scannerwork/scanner-report/source-60.txt +52 -152
- package/.scannerwork/scanner-report/source-61.txt +92 -0
- package/.scannerwork/scanner-report/source-62.txt +54 -167
- package/.scannerwork/scanner-report/source-63.txt +111 -0
- package/.scannerwork/scanner-report/source-64.txt +133 -387
- package/.scannerwork/scanner-report/source-8.txt +167 -36
- package/.scannerwork/scanner-report/symbols-11.pb +153 -60
- package/.scannerwork/scanner-report/symbols-12.pb +180 -45
- package/.scannerwork/scanner-report/symbols-14.pb +44 -35
- package/.scannerwork/scanner-report/symbols-15.pb +68 -485
- package/.scannerwork/scanner-report/symbols-16.pb +13 -1253
- package/.scannerwork/scanner-report/symbols-17.pb +42 -76
- package/.scannerwork/scanner-report/symbols-18.pb +34 -110
- package/.scannerwork/scanner-report/symbols-2.pb +28 -0
- package/.scannerwork/scanner-report/symbols-20.pb +1254 -0
- package/.scannerwork/scanner-report/symbols-21.pb +77 -0
- package/.scannerwork/scanner-report/symbols-35.pb +494 -9
- package/.scannerwork/scanner-report/symbols-36.pb +116 -27
- package/.scannerwork/scanner-report/symbols-37.pb +97 -111
- package/.scannerwork/scanner-report/symbols-38.pb +17 -0
- package/.scannerwork/scanner-report/symbols-39.pb +27 -19
- package/.scannerwork/scanner-report/symbols-40.pb +9 -29
- package/.scannerwork/scanner-report/symbols-41.pb +9 -0
- package/.scannerwork/scanner-report/symbols-42.pb +97 -28
- package/.scannerwork/scanner-report/symbols-43.pb +60 -42
- package/.scannerwork/scanner-report/symbols-44.pb +111 -14
- package/.scannerwork/scanner-report/symbols-45.pb +486 -33
- package/.scannerwork/scanner-report/symbols-46.pb +84 -19
- package/.scannerwork/scanner-report/symbols-47.pb +18 -13
- package/.scannerwork/scanner-report/symbols-48.pb +29 -58
- package/.scannerwork/scanner-report/symbols-5.pb +610 -17
- package/.scannerwork/scanner-report/symbols-51.pb +15 -39
- package/.scannerwork/scanner-report/symbols-52.pb +13 -45
- package/.scannerwork/scanner-report/symbols-54.pb +20 -126
- package/.scannerwork/scanner-report/symbols-55.pb +33 -44
- package/.scannerwork/scanner-report/symbols-56.pb +354 -30
- package/.scannerwork/scanner-report/symbols-57.pb +30 -0
- package/.scannerwork/scanner-report/symbols-58.pb +42 -0
- package/.scannerwork/scanner-report/symbols-59.pb +46 -180
- package/.scannerwork/scanner-report/symbols-60.pb +41 -152
- package/.scannerwork/scanner-report/symbols-61.pb +44 -0
- package/.scannerwork/scanner-report/symbols-62.pb +15 -0
- package/.scannerwork/scanner-report/symbols-63.pb +59 -0
- package/.scannerwork/scanner-report/symbols-64.pb +120 -604
- package/.scannerwork/scanner-report/syntax-highlightings-11.pb +176 -72
- package/.scannerwork/scanner-report/syntax-highlightings-12.pb +180 -65
- package/.scannerwork/scanner-report/syntax-highlightings-14.pb +74 -59
- package/.scannerwork/scanner-report/syntax-highlightings-15.pb +64 -618
- package/.scannerwork/scanner-report/syntax-highlightings-16.pb +21 -854
- package/.scannerwork/scanner-report/syntax-highlightings-17.pb +43 -119
- package/.scannerwork/scanner-report/syntax-highlightings-18.pb +57 -185
- package/.scannerwork/scanner-report/syntax-highlightings-19.pb +59 -0
- package/.scannerwork/scanner-report/syntax-highlightings-2.pb +138 -0
- package/.scannerwork/scanner-report/syntax-highlightings-20.pb +887 -0
- package/.scannerwork/scanner-report/syntax-highlightings-21.pb +158 -0
- package/.scannerwork/scanner-report/syntax-highlightings-35.pb +597 -15
- package/.scannerwork/scanner-report/syntax-highlightings-36.pb +97 -31
- package/.scannerwork/scanner-report/syntax-highlightings-37.pb +189 -96
- package/.scannerwork/scanner-report/syntax-highlightings-38.pb +63 -0
- package/.scannerwork/scanner-report/syntax-highlightings-39.pb +45 -59
- package/.scannerwork/scanner-report/syntax-highlightings-40.pb +29 -82
- package/.scannerwork/scanner-report/{syntax-highlightings-34.pb → syntax-highlightings-41.pb} +13 -15
- package/.scannerwork/scanner-report/syntax-highlightings-42.pb +146 -102
- package/.scannerwork/scanner-report/syntax-highlightings-43.pb +75 -43
- package/.scannerwork/scanner-report/syntax-highlightings-44.pb +193 -24
- package/.scannerwork/scanner-report/syntax-highlightings-45.pb +621 -91
- package/.scannerwork/scanner-report/syntax-highlightings-46.pb +162 -35
- package/.scannerwork/scanner-report/syntax-highlightings-47.pb +70 -33
- package/.scannerwork/scanner-report/syntax-highlightings-48.pb +78 -108
- package/.scannerwork/scanner-report/syntax-highlightings-5.pb +619 -34
- package/.scannerwork/scanner-report/syntax-highlightings-50.pb +3736 -39
- package/.scannerwork/scanner-report/syntax-highlightings-51.pb +17 -83
- package/.scannerwork/scanner-report/syntax-highlightings-52.pb +15 -65
- package/.scannerwork/scanner-report/syntax-highlightings-54.pb +29 -178
- package/.scannerwork/scanner-report/syntax-highlightings-55.pb +88 -49
- package/.scannerwork/scanner-report/syntax-highlightings-56.pb +250 -78
- package/.scannerwork/scanner-report/syntax-highlightings-57.pb +113 -0
- package/.scannerwork/scanner-report/syntax-highlightings-58.pb +116 -0
- package/.scannerwork/scanner-report/syntax-highlightings-59.pb +64 -194
- package/.scannerwork/scanner-report/syntax-highlightings-60.pb +47 -183
- package/.scannerwork/scanner-report/syntax-highlightings-61.pb +90 -0
- package/.scannerwork/scanner-report/syntax-highlightings-62.pb +43 -938
- package/.scannerwork/scanner-report/syntax-highlightings-63.pb +133 -0
- package/.scannerwork/scanner-report/syntax-highlightings-64.pb +151 -586
- package/.scannerwork/scanner-report/syntax-highlightings-8.pb +938 -48
- package/CHANGES.md +5 -0
- package/package.json +2 -2
- package/test-18-results.xml +154 -154
- package/test-iam-18-results.xml +50 -50
- package/.scannerwork/scanner-report/changesets-10.pb +0 -2
- package/.scannerwork/scanner-report/changesets-13.pb +0 -1
- package/.scannerwork/scanner-report/changesets-30.pb +0 -1
- package/.scannerwork/scanner-report/changesets-31.pb +0 -1
- package/.scannerwork/scanner-report/changesets-32.pb +0 -1
- package/.scannerwork/scanner-report/changesets-33.pb +0 -1
- package/.scannerwork/scanner-report/changesets-34.pb +0 -1
- package/.scannerwork/scanner-report/changesets-49.pb +0 -1
- package/.scannerwork/scanner-report/changesets-50.pb +0 -1
- package/.scannerwork/scanner-report/changesets-6.pb +0 -1
- package/.scannerwork/scanner-report/changesets-7.pb +0 -1
- package/.scannerwork/scanner-report/changesets-8.pb +0 -1
- package/.scannerwork/scanner-report/changesets-9.pb +0 -1
- package/.scannerwork/scanner-report/component-10.pb +0 -2
- package/.scannerwork/scanner-report/component-13.pb +0 -1
- package/.scannerwork/scanner-report/component-30.pb +0 -1
- package/.scannerwork/scanner-report/component-31.pb +0 -1
- package/.scannerwork/scanner-report/component-32.pb +0 -1
- package/.scannerwork/scanner-report/component-33.pb +0 -1
- package/.scannerwork/scanner-report/component-34.pb +0 -1
- package/.scannerwork/scanner-report/component-4.pb +0 -1
- package/.scannerwork/scanner-report/component-49.pb +0 -1
- package/.scannerwork/scanner-report/component-6.pb +0 -1
- package/.scannerwork/scanner-report/component-7.pb +0 -1
- package/.scannerwork/scanner-report/component-9.pb +0 -1
- package/.scannerwork/scanner-report/coverages-10.pb +0 -0
- package/.scannerwork/scanner-report/coverages-13.pb +0 -0
- package/.scannerwork/scanner-report/coverages-30.pb +0 -0
- package/.scannerwork/scanner-report/coverages-33.pb +0 -0
- package/.scannerwork/scanner-report/coverages-49.pb +0 -0
- package/.scannerwork/scanner-report/coverages-50.pb +0 -0
- package/.scannerwork/scanner-report/coverages-6.pb +0 -0
- package/.scannerwork/scanner-report/coverages-7.pb +0 -0
- package/.scannerwork/scanner-report/coverages-9.pb +0 -0
- package/.scannerwork/scanner-report/duplications-30.pb +0 -2
- package/.scannerwork/scanner-report/duplications-9.pb +0 -3
- package/.scannerwork/scanner-report/issues-37.pb +0 -3
- package/.scannerwork/scanner-report/measures-10.pb +0 -0
- package/.scannerwork/scanner-report/measures-13.pb +0 -0
- package/.scannerwork/scanner-report/measures-30.pb +0 -0
- package/.scannerwork/scanner-report/measures-33.pb +0 -0
- package/.scannerwork/scanner-report/measures-34.pb +0 -0
- package/.scannerwork/scanner-report/measures-4.pb +0 -0
- package/.scannerwork/scanner-report/measures-49.pb +0 -0
- package/.scannerwork/scanner-report/measures-6.pb +0 -0
- package/.scannerwork/scanner-report/measures-7.pb +0 -0
- package/.scannerwork/scanner-report/measures-9.pb +0 -0
- package/.scannerwork/scanner-report/source-10.txt +0 -63
- package/.scannerwork/scanner-report/source-30.txt +0 -145
- package/.scannerwork/scanner-report/source-33.txt +0 -147
- package/.scannerwork/scanner-report/source-4.txt +0 -509
- package/.scannerwork/scanner-report/source-49.txt +0 -281
- package/.scannerwork/scanner-report/source-6.txt +0 -100
- package/.scannerwork/scanner-report/source-7.txt +0 -366
- package/.scannerwork/scanner-report/source-9.txt +0 -131
- package/.scannerwork/scanner-report/symbols-10.pb +0 -43
- package/.scannerwork/scanner-report/symbols-13.pb +0 -14
- package/.scannerwork/scanner-report/symbols-30.pb +0 -102
- package/.scannerwork/scanner-report/symbols-33.pb +0 -85
- package/.scannerwork/scanner-report/symbols-34.pb +0 -10
- package/.scannerwork/scanner-report/symbols-49.pb +0 -354
- package/.scannerwork/scanner-report/symbols-50.pb +0 -18
- package/.scannerwork/scanner-report/symbols-6.pb +0 -69
- package/.scannerwork/scanner-report/symbols-7.pb +0 -494
- package/.scannerwork/scanner-report/symbols-9.pb +0 -97
- package/.scannerwork/scanner-report/syntax-highlightings-10.pb +0 -82
- package/.scannerwork/scanner-report/syntax-highlightings-13.pb +0 -54
- package/.scannerwork/scanner-report/syntax-highlightings-30.pb +0 -227
- package/.scannerwork/scanner-report/syntax-highlightings-33.pb +0 -191
- package/.scannerwork/scanner-report/syntax-highlightings-4.pb +0 -3748
- package/.scannerwork/scanner-report/syntax-highlightings-49.pb +0 -285
- package/.scannerwork/scanner-report/syntax-highlightings-6.pb +0 -105
- package/.scannerwork/scanner-report/syntax-highlightings-7.pb +0 -630
- package/.scannerwork/scanner-report/syntax-highlightings-9.pb +0 -182
- /package/.scannerwork/scanner-report/{coverages-8.pb → coverages-19.pb} +0 -0
- /package/.scannerwork/scanner-report/{coverages-31.pb → coverages-22.pb} +0 -0
- /package/.scannerwork/scanner-report/{coverages-32.pb → coverages-23.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-10.pb → duplications-19.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-13.pb → duplications-2.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-33.pb → duplications-20.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-31.pb → duplications-22.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-32.pb → duplications-23.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-34.pb → duplications-35.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-49.pb → duplications-38.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-50.pb → duplications-57.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-6.pb → duplications-58.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-7.pb → duplications-62.pb} +0 -0
- /package/.scannerwork/scanner-report/{duplications-8.pb → duplications-63.pb} +0 -0
- /package/.scannerwork/scanner-report/{issues-32.pb → issues-23.pb} +0 -0
- /package/.scannerwork/scanner-report/{issues-7.pb → issues-35.pb} +0 -0
- /package/.scannerwork/scanner-report/{measures-31.pb → measures-22.pb} +0 -0
- /package/.scannerwork/scanner-report/{measures-32.pb → measures-23.pb} +0 -0
- /package/.scannerwork/scanner-report/{source-31.txt → source-22.txt} +0 -0
- /package/.scannerwork/scanner-report/{source-32.txt → source-23.txt} +0 -0
- /package/.scannerwork/scanner-report/{symbols-8.pb → symbols-19.pb} +0 -0
- /package/.scannerwork/scanner-report/{symbols-31.pb → symbols-22.pb} +0 -0
- /package/.scannerwork/scanner-report/{symbols-32.pb → symbols-23.pb} +0 -0
- /package/.scannerwork/scanner-report/{syntax-highlightings-31.pb → syntax-highlightings-22.pb} +0 -0
- /package/.scannerwork/scanner-report/{syntax-highlightings-32.pb → syntax-highlightings-23.pb} +0 -0
|
@@ -12,103 +12,120 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
|
|
15
|
-
/* global
|
|
15
|
+
/* global describe it */
|
|
16
16
|
'use strict';
|
|
17
17
|
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
// Import the common hooks
|
|
21
|
-
require('../test/hooks.js');
|
|
18
|
+
const fs = require('fs');
|
|
19
|
+
const u = require('./citestutils.js');
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
// https://github.com/h2non/toxy#bandwidth
|
|
42
|
-
// Note the implementation of bandwidth is simplistic and the threshold
|
|
43
|
-
// delay is applied to every write of the buffer, so use the smallest
|
|
44
|
-
// delay possible and adjust the rate using the bytes size instead.
|
|
45
|
-
proxy
|
|
46
|
-
.poison(tpoisons.bandwidth({ bytes: 512, threshold: 1 })); // 0.5 MB/s
|
|
47
|
-
break;
|
|
48
|
-
case 'latency':
|
|
49
|
-
// https://github.com/h2non/toxy#latency
|
|
50
|
-
proxy
|
|
51
|
-
.poison(tpoisons.latency({ max: 1500, min: 250 }))
|
|
52
|
-
.withRule(trules.probability(60));
|
|
53
|
-
break;
|
|
54
|
-
case 'slow-read':
|
|
55
|
-
// https://github.com/h2non/toxy#slow-read
|
|
56
|
-
// Note this only impacts read of data from requests so only for non-GET
|
|
57
|
-
// In practice this means that it impacts restore much more than backup
|
|
58
|
-
// since although backup POSTs to _bulk_get the content is much smaller
|
|
59
|
-
// than what is POSTed to _bulk_docs for a restore.
|
|
60
|
-
// Similarly to bandwidth-limit use a 1 ms threshold
|
|
61
|
-
proxy
|
|
62
|
-
.poison(tpoisons.slowRead({ chunk: 256, threshold: 1 }))
|
|
63
|
-
// Slow read for 10 % of the time e.g. 10 ms in every 100
|
|
64
|
-
.withRule(trules.timeThreshold({ duration: 10, period: 100 }));
|
|
65
|
-
break;
|
|
66
|
-
case 'rate-limit':
|
|
67
|
-
// https://github.com/h2non/toxy#rate-limit
|
|
68
|
-
// Simulate the Cloudant free plan with 20 lookups ps and 10 writes ps
|
|
69
|
-
proxy.post('/*/_bulk_get')
|
|
70
|
-
.poison(tpoisons.rateLimit({ limit: 20, threshold: 1000 }));
|
|
71
|
-
proxy.post('/*/_bulk_docs')
|
|
72
|
-
.poison(tpoisons.rateLimit({ limit: 10, threshold: 1000 }));
|
|
73
|
-
break;
|
|
74
|
-
default:
|
|
75
|
-
throw Error('Unknown toxy poison ' + poison);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Catch remaining traffic
|
|
79
|
-
proxy.all('/*');
|
|
80
|
-
return proxy;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const poisons = [
|
|
84
|
-
'normal',
|
|
85
|
-
'bandwidth-limit',
|
|
86
|
-
'latency',
|
|
87
|
-
'slow-read',
|
|
88
|
-
'rate-limit'
|
|
89
|
-
];
|
|
90
|
-
|
|
91
|
-
poisons.forEach(function(poison) {
|
|
92
|
-
describe('unreliable network tests (using toxy poison ' + poison + ')', function() {
|
|
93
|
-
let proxy;
|
|
94
|
-
|
|
95
|
-
before('start toxy server', function() {
|
|
96
|
-
proxy = setupProxy(poison);
|
|
97
|
-
console.log('Using toxy poison ' + poison);
|
|
21
|
+
[{ useApi: true }, { useApi: false }].forEach(function(params) {
|
|
22
|
+
describe(u.scenario('Basic backup and restore', params), function() {
|
|
23
|
+
it('should backup animaldb to a file correctly', function(done) {
|
|
24
|
+
// Allow up to 40 s to backup and compare (it should be much faster)!
|
|
25
|
+
u.setTimeout(this, 40);
|
|
26
|
+
const actualBackup = `./${this.fileName}`;
|
|
27
|
+
// Create a file and backup to it
|
|
28
|
+
const output = fs.createWriteStream(actualBackup);
|
|
29
|
+
output.on('open', function() {
|
|
30
|
+
u.testBackup(params, 'animaldb', output, function(err) {
|
|
31
|
+
if (err) {
|
|
32
|
+
done(err);
|
|
33
|
+
} else {
|
|
34
|
+
u.readSortAndDeepEqual(actualBackup, './test/fixtures/animaldb_expected.json', done);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
98
39
|
|
|
99
|
-
|
|
100
|
-
//
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
40
|
+
it('should restore animaldb to a database correctly', function(done) {
|
|
41
|
+
// Allow up to 60 s to restore and compare (again it should be faster)!
|
|
42
|
+
u.setTimeout(this, 60);
|
|
43
|
+
const input = fs.createReadStream('./test/fixtures/animaldb_expected.json');
|
|
44
|
+
const dbName = this.dbName;
|
|
45
|
+
input.on('open', function() {
|
|
46
|
+
u.testRestore(params, input, dbName, function(err) {
|
|
47
|
+
if (err) {
|
|
48
|
+
done(err);
|
|
49
|
+
} else {
|
|
50
|
+
u.dbCompare('animaldb', dbName, done);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
105
54
|
});
|
|
106
55
|
|
|
107
|
-
|
|
108
|
-
|
|
56
|
+
it('should execute a shallow mode backup successfully', function(done) {
|
|
57
|
+
// Allow 30 s
|
|
58
|
+
u.setTimeout(this, 30);
|
|
59
|
+
const actualBackup = `./${this.fileName}`;
|
|
60
|
+
const output = fs.createWriteStream(actualBackup);
|
|
61
|
+
// Add the shallow mode option
|
|
62
|
+
const p = u.p(params, { opts: { mode: 'shallow' } });
|
|
63
|
+
output.on('open', function() {
|
|
64
|
+
u.testBackup(p, 'animaldb', output, function(err) {
|
|
65
|
+
if (err) {
|
|
66
|
+
done(err);
|
|
67
|
+
} else {
|
|
68
|
+
u.readSortAndDeepEqual(actualBackup, './test/fixtures/animaldb_expected_shallow.json', done);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
109
72
|
});
|
|
110
73
|
|
|
111
|
-
|
|
112
|
-
|
|
74
|
+
describe(u.scenario('Buffer size tests', params), function() {
|
|
75
|
+
it('should backup/restore animaldb with the same buffer size', function(done) {
|
|
76
|
+
// Allow up to 60 s for backup and restore of animaldb
|
|
77
|
+
u.setTimeout(this, 60);
|
|
78
|
+
const actualBackup = `./${this.fileName}`;
|
|
79
|
+
const logFile = `./${this.fileName}` + '.log';
|
|
80
|
+
const p = u.p(params, { opts: { log: logFile, bufferSize: 1 } });
|
|
81
|
+
u.testBackupAndRestoreViaFile(p, 'animaldb', actualBackup, this.dbName, done);
|
|
82
|
+
});
|
|
83
|
+
it('should backup/restore animaldb with backup buffer > restore buffer', function(done) {
|
|
84
|
+
// Allow up to 60 s for backup and restore of animaldb
|
|
85
|
+
u.setTimeout(this, 60);
|
|
86
|
+
const actualBackup = `./${this.fileName}`;
|
|
87
|
+
const logFile = `./${this.fileName}` + '.log';
|
|
88
|
+
const dbName = this.dbName;
|
|
89
|
+
const p = u.p(params, { opts: { log: logFile, bufferSize: 2 } }); // backup
|
|
90
|
+
const q = u.p(params, { opts: { bufferSize: 1 } }); // restore
|
|
91
|
+
u.testBackupToFile(p, 'animaldb', actualBackup, function(err) {
|
|
92
|
+
if (err) {
|
|
93
|
+
done(err);
|
|
94
|
+
} else {
|
|
95
|
+
// restore
|
|
96
|
+
u.testRestoreFromFile(q, actualBackup, dbName, function(err) {
|
|
97
|
+
if (!err) {
|
|
98
|
+
u.dbCompare('animaldb', dbName, done);
|
|
99
|
+
} else {
|
|
100
|
+
done(err);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
it('should backup/restore animaldb with backup buffer < restore buffer', function(done) {
|
|
107
|
+
// Allow up to 60 s for backup and restore of animaldb
|
|
108
|
+
u.setTimeout(this, 60);
|
|
109
|
+
const actualBackup = `./${this.fileName}`;
|
|
110
|
+
const logFile = `./${this.fileName}` + '.log';
|
|
111
|
+
const dbName = this.dbName;
|
|
112
|
+
const p = u.p(params, { opts: { log: logFile, bufferSize: 1 } }); // backup
|
|
113
|
+
const q = u.p(params, { opts: { bufferSize: 2 } }); // restore
|
|
114
|
+
u.testBackupToFile(p, 'animaldb', actualBackup, function(err) {
|
|
115
|
+
if (err) {
|
|
116
|
+
done(err);
|
|
117
|
+
} else {
|
|
118
|
+
// restore
|
|
119
|
+
u.testRestoreFromFile(q, actualBackup, dbName, function(err) {
|
|
120
|
+
if (!err) {
|
|
121
|
+
u.dbCompare('animaldb', dbName, done);
|
|
122
|
+
} else {
|
|
123
|
+
done(err);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
});
|
|
113
130
|
});
|
|
114
131
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright ©
|
|
1
|
+
// Copyright © 2018, 2021 IBM Corp. All rights reserved.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -11,65 +11,82 @@
|
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
/* global describe it */
|
|
14
16
|
'use strict';
|
|
15
17
|
|
|
16
18
|
const fs = require('fs');
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
+
const readline = require('readline');
|
|
20
|
+
const u = require('./citestutils.js');
|
|
21
|
+
const uuid = require('uuid').v4;
|
|
19
22
|
|
|
20
|
-
const
|
|
21
|
-
const change = new stream.Transform({ objectMode: true });
|
|
22
|
-
change._transform = function(line, encoding, done) {
|
|
23
|
-
if (line && line[0] === ':') {
|
|
24
|
-
const obj = {
|
|
25
|
-
command: null,
|
|
26
|
-
batch: null,
|
|
27
|
-
docs: []
|
|
28
|
-
};
|
|
23
|
+
const params = { useApi: true };
|
|
29
24
|
|
|
30
|
-
|
|
25
|
+
describe(u.scenario('Concurrent database backups', params), function() {
|
|
26
|
+
it('should run concurrent API database backups correctly #slower', function(done) {
|
|
27
|
+
// Allow up to 900 s to backup and compare (it should be much faster)!
|
|
28
|
+
u.setTimeout(this, 900);
|
|
31
29
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
let doneCount = 0;
|
|
31
|
+
let doneErr;
|
|
32
|
+
const finished = function(err) {
|
|
33
|
+
doneCount++;
|
|
34
|
+
if (doneCount === 2) {
|
|
35
|
+
done(doneErr || err);
|
|
36
36
|
}
|
|
37
|
+
doneErr = err;
|
|
38
|
+
};
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
if (matches) {
|
|
41
|
-
obj.batch = parseInt(matches[1]);
|
|
42
|
-
}
|
|
40
|
+
const checkForEmptyBatches = function(fileName, cb) {
|
|
41
|
+
let foundEmptyBatch = false;
|
|
43
42
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
done();
|
|
52
|
-
};
|
|
53
|
-
return change;
|
|
54
|
-
};
|
|
43
|
+
const rd = readline.createInterface({
|
|
44
|
+
input: fs.createReadStream(fileName),
|
|
45
|
+
output: fs.createWriteStream('/dev/null'),
|
|
46
|
+
terminal: false
|
|
47
|
+
});
|
|
55
48
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
49
|
+
rd.on('line', function(line) {
|
|
50
|
+
if (JSON.parse(line).length === 0) {
|
|
51
|
+
// Note: Empty batch arrays indicate that the running backup is
|
|
52
|
+
// incorrectly sharing a log file with another ongoing backup job.
|
|
53
|
+
foundEmptyBatch = true;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
59
56
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
rd.on('close', function() {
|
|
58
|
+
if (foundEmptyBatch) {
|
|
59
|
+
cb(new Error(`Log file '${fileName}' contains empty batches`));
|
|
60
|
+
} else {
|
|
61
|
+
cb();
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
// [1] Run 'largedb2g' database backup
|
|
67
|
+
const actualBackup1 = `./${uuid()}`;
|
|
68
|
+
const output1 = fs.createWriteStream(actualBackup1);
|
|
69
|
+
output1.on('open', function() {
|
|
70
|
+
u.testBackup(params, 'largedb2g', output1, function(err) {
|
|
71
|
+
if (err) {
|
|
72
|
+
finished(err);
|
|
73
|
+
} else {
|
|
74
|
+
checkForEmptyBatches(actualBackup1, finished);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
});
|
|
64
78
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
.
|
|
68
|
-
.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
79
|
+
// [2] Run 'largedb1g' database backup
|
|
80
|
+
const actualBackup2 = `./${uuid()}`;
|
|
81
|
+
const output2 = fs.createWriteStream(actualBackup2);
|
|
82
|
+
output2.on('open', function() {
|
|
83
|
+
u.testBackup(params, 'largedb1g', output2, function(err) {
|
|
84
|
+
if (err) {
|
|
85
|
+
finished(err);
|
|
86
|
+
} else {
|
|
87
|
+
checkForEmptyBatches(actualBackup2, finished);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
74
90
|
});
|
|
75
|
-
};
|
|
91
|
+
});
|
|
92
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright © 2017,
|
|
1
|
+
// Copyright © 2017, 2021 IBM Corp. All rights reserved.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -11,44 +11,146 @@
|
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
/* global describe it */
|
|
14
16
|
'use strict';
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
18
|
+
const assert = require('assert');
|
|
19
|
+
const nock = require('nock');
|
|
20
|
+
const request = require('../includes/request.js');
|
|
21
|
+
const changes = require('../includes/spoolchanges.js');
|
|
22
|
+
|
|
23
|
+
const url = 'http://localhost:7777';
|
|
24
|
+
const dbName = 'fakenockdb';
|
|
25
|
+
const longTestTimeout = 3000;
|
|
26
|
+
|
|
27
|
+
const db = request.client(`${url}/${dbName}`, { parallelism: 1 });
|
|
28
|
+
|
|
29
|
+
const seqSuffix = Buffer.alloc(124, 'abc123').toString('base64');
|
|
30
|
+
function provideChanges(batchSize, totalChanges, fullResponse = false) {
|
|
31
|
+
let pending = totalChanges;
|
|
32
|
+
const sparseResultsArray = Array(batchSize).fill({
|
|
33
|
+
seq: null,
|
|
34
|
+
id: 'doc',
|
|
35
|
+
changes: [{ rev: '1-abcdef0123456789abcdef0123456789' }]
|
|
36
|
+
});
|
|
37
|
+
nock(url)
|
|
38
|
+
.post(`/${dbName}/_changes`)
|
|
39
|
+
.query(true)
|
|
40
|
+
.times(totalChanges / batchSize + (totalChanges % batchSize > 0 ? 1 : 0))
|
|
41
|
+
.reply(200, (uri, requestBody) => {
|
|
42
|
+
pending -= batchSize;
|
|
43
|
+
const lastSeq = (totalChanges - pending);
|
|
44
|
+
const seq = lastSeq - batchSize;
|
|
45
|
+
return {
|
|
46
|
+
results: fullResponse
|
|
47
|
+
? Array.from(Array(batchSize), (_, i) => {
|
|
48
|
+
return {
|
|
49
|
+
seq: `${seq + i}-${seqSuffix}`,
|
|
50
|
+
id: `doc${seq + i}`,
|
|
51
|
+
changes: [{ rev: '1-abcdef0123456789abcdef0123456789' }]
|
|
52
|
+
};
|
|
53
|
+
})
|
|
54
|
+
: sparseResultsArray,
|
|
55
|
+
pending: pending,
|
|
56
|
+
last_seq: `${lastSeq}-abc`
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
describe('#unit Check spool changes', function() {
|
|
62
|
+
it('should terminate on request error', function(done) {
|
|
63
|
+
nock(url)
|
|
64
|
+
.post(`/${dbName}/_changes`)
|
|
65
|
+
.query(true)
|
|
66
|
+
.times(3)
|
|
67
|
+
.replyWithError({ code: 'ECONNRESET', message: 'socket hang up' });
|
|
68
|
+
|
|
69
|
+
changes(db, '/dev/null', 500, null, function(err) {
|
|
70
|
+
assert.strictEqual(err.name, 'SpoolChangesError');
|
|
71
|
+
assert.strictEqual(err.message, `Failed changes request - socket hang up: post ${url}/${dbName}/_changes`);
|
|
72
|
+
assert.ok(nock.isDone());
|
|
73
|
+
done();
|
|
74
|
+
});
|
|
75
|
+
}).timeout(longTestTimeout);
|
|
76
|
+
|
|
77
|
+
it('should terminate on bad HTTP status code response', function(done) {
|
|
78
|
+
nock(url)
|
|
79
|
+
.post(`/${dbName}/_changes`)
|
|
80
|
+
.query(true)
|
|
81
|
+
.times(3)
|
|
82
|
+
.reply(500, function(uri, requestBody) {
|
|
83
|
+
this.req.response.statusMessage = 'Internal Server Error';
|
|
84
|
+
return { error: 'foo', reason: 'bar' };
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
changes(db, '/dev/null', 500, null, function(err) {
|
|
88
|
+
assert.strictEqual(err.name, 'HTTPFatalError');
|
|
89
|
+
assert.strictEqual(err.message, `500 Internal Server Error: post ${url}/${dbName}/_changes - Error: foo, Reason: bar`);
|
|
90
|
+
assert.ok(nock.isDone());
|
|
91
|
+
done();
|
|
92
|
+
});
|
|
93
|
+
}).timeout(longTestTimeout);
|
|
94
|
+
|
|
95
|
+
it('should keep collecting changes', function(done) {
|
|
96
|
+
// This test validates that spooling will correctly
|
|
97
|
+
// continue across multiple requests
|
|
98
|
+
// (4 batches of 100000 to be precise).
|
|
99
|
+
// This test might take up to 10 seconds
|
|
100
|
+
this.timeout(10 * 1000);
|
|
101
|
+
|
|
102
|
+
// Use full changes for this test
|
|
103
|
+
provideChanges(100000, 400000, true);
|
|
104
|
+
changes(db, '/dev/null', 500, null, function(err) {
|
|
105
|
+
assert.ok(!err);
|
|
106
|
+
assert.ok(nock.isDone());
|
|
107
|
+
done();
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
it('should keep collecting sparse changes', function(done) {
|
|
112
|
+
// This test checks that making thousands of requests doesn't
|
|
113
|
+
// make anything bad happen.
|
|
114
|
+
// This test might take up to 25 seconds
|
|
115
|
+
this.timeout(25 * 1000);
|
|
116
|
+
// Use sparse changes for this test and a batch size of 1
|
|
117
|
+
provideChanges(1, 2500);
|
|
118
|
+
changes(db, '/dev/null', 500, null, function(err) {
|
|
119
|
+
assert.ok(!err);
|
|
120
|
+
assert.ok(nock.isDone());
|
|
121
|
+
done();
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
describe('Longer spool changes checks', function() {
|
|
127
|
+
it('#slow should keep collecting changes (25M)', function(done) {
|
|
128
|
+
// This test might take up to 5 minutes
|
|
129
|
+
this.timeout(5 * 60 * 1000);
|
|
130
|
+
// Note changes spooling uses a constant batch size, we are setting
|
|
131
|
+
// a test value here and setting the buffer to match
|
|
132
|
+
const batch = 100000;
|
|
133
|
+
// Use sparse changes for this test
|
|
134
|
+
provideChanges(batch, 25000000);
|
|
135
|
+
changes(db, '/dev/null', batch, null, function(err) {
|
|
136
|
+
assert.ok(!err);
|
|
137
|
+
assert.ok(nock.isDone());
|
|
138
|
+
done();
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
it('#slower should keep collecting changes (500M)', function(done) {
|
|
143
|
+
// This test might take up to 90 minutes
|
|
144
|
+
this.timeout(90 * 60 * 1000);
|
|
145
|
+
// Note changes spooling uses a constant batch size, we are setting
|
|
146
|
+
// a test value here and setting the buffer to match
|
|
147
|
+
const batch = 1000000;
|
|
148
|
+
// Use full changes for this test to exercise load
|
|
149
|
+
provideChanges(batch, 500000000, true);
|
|
150
|
+
changes(db, '/dev/null', batch, null, function(err) {
|
|
151
|
+
assert.ok(!err);
|
|
152
|
+
assert.ok(nock.isDone());
|
|
153
|
+
done();
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
});
|