<testsuites name="test">
  <testsuite name="#unit Validate arguments" tests="33" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:13:26" time="0.119">
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid URL type" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid URL type" time="0.028">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (no host) URL" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (no protocol) URL" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (wrong protocol) URL" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (no path) URL" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (no protocol, no host) URL" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid buffer size type" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for zero buffer size" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for float buffer size" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid buffer size type" time="0.004">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid log type" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid log type" time="0.007">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid mode type" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid mode string" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid mode type" time="0.006">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid output type" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid output type" time="0.006">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid parallelism type" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for zero parallelism" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for float parallelism" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid parallelism type" time="0.004">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid request timeout type" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for zero request timeout" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for float request timout" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid request timeout type" time="0.005">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid resume type" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid resume type" time="0.004">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid key type" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for key and URL credentials supplied" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="warns for log arg in shallow mode" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="warns for resume arg in shallow mode" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="warns for parallism arg in shallow mode" time="0.001">
    </testcase>
  </testsuite>
  <testsuite name="Basic backup and restore using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:13:26" time="4.511">
    <testcase classname="test.Basic backup and restore using API" name="should backup animaldb to a file correctly" time="0.948">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using API" name="should restore animaldb to a database correctly" time="1.843">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using API" name="should execute a shallow mode backup successfully" time="0.626">
      <system-out><![CDATA[{ total: 11 }
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Basic backup and restore using API Buffer size tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:13:30" time="11.469">
    <testcase classname="test.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with the same buffer size" time="3.721">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with backup buffer &gt; restore buffer" time="3.395">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using API Buffer size tests using API" name="should backup/restore animaldb with backup buffer &lt; restore buffer" time="3.58">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Basic backup and restore using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:13:42" time="5.474">
    <testcase classname="test.Basic backup and restore using CLI" name="should backup animaldb to a file correctly" time="1.371">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using CLI" name="should restore animaldb to a database correctly" time="2.256">
    </testcase>
    <testcase classname="test.Basic backup and restore using CLI" name="should execute a shallow mode backup successfully" time="1.066">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Basic backup and restore using CLI Buffer size tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:13:47" time="14.57">
    <testcase classname="test.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with the same buffer size" time="4.688">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with backup buffer &gt; restore buffer" time="4.461">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Basic backup and restore using CLI Buffer size tests using CLI" name="should backup/restore animaldb with backup buffer &lt; restore buffer" time="4.622">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Compression tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:14:02" time="6.504">
    <testcase classname="test.Compression tests using API" name="should backup animaldb to a compressed file" time="0.881">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Compression tests using API" name="should backup and restore animaldb via a compressed file" time="2.686">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Compression tests using API" name="should backup and restore animaldb via a compressed stream" time="2.158">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Compression tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:14:08" time="8.546">
    <testcase classname="test.Compression tests using CLI" name="should backup animaldb to a compressed file" time="1.366">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Compression tests using CLI" name="should backup and restore animaldb via a compressed file" time="3.673">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Compression tests using CLI" name="should backup and restore animaldb via a compressed stream" time="2.73">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="End to end backup and restore using API" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:14:17" time="335.319">
    <testcase classname="test.End to end backup and restore using API" name="should backup and restore animaldb" time="2.171">
      <system-out><![CDATA[{ total: 15 }
{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.End to end backup and restore using API" name="should backup and restore largedb1g #slow" time="332.395">
      <system-out><![CDATA[{ total: 522948 }
{ total: 522948 }
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="End to end backup and restore using CLI" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:19:52" time="546.479">
    <testcase classname="test.End to end backup and restore using CLI" name="should backup and restore animaldb" time="2.715">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.End to end backup and restore using CLI" name="should backup and restore largedb1g #slow" time="543.003">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Encryption tests" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:28:59" time="4.002">
    <testcase classname="test.Encryption tests" name="should backup and restore animaldb via an encrypted file" time="3.745">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Write error tests" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:03" time="0.268">
    <testcase classname="test.Write error tests" name="calls callback with error set when stream is not writeable" time="0.012">
    </testcase>
  </testsuite>
  <testsuite name="Event tests" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:03" time="2.284">
    <testcase classname="test.Event tests" name="should get a finished event when using stdout" time="0.895">
    </testcase>
    <testcase classname="test.Event tests" name="should get a finished event when using file output" time="0.873">
    </testcase>
  </testsuite>
  <testsuite name="Resume tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:05" time="5.21">
    <testcase classname="test.Resume tests using API" name="should create a log file" time="0.87">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Resume tests using API" name="should restore corrupted animaldb to a database correctly" time="1.798">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
    <testcase classname="test.Resume tests using API" name="should restore resumed animaldb with blank line to a database correctly" time="1.771">
      <system-out><![CDATA[{ total: 15 }
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="Resume tests using CLI" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:10" time="6.875">
    <testcase classname="test.Resume tests using CLI" name="should create a log file" time="1.577">
      <system-out><![CDATA[Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Resume tests using CLI" name="should restore corrupted animaldb to a database correctly" time="2.278">
    </testcase>
    <testcase classname="test.Resume tests using CLI" name="should restore resumed animaldb with blank line to a database correctly" time="2.24">
    </testcase>
  </testsuite>
  <testsuite name="Resume tests" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:17" time="34.234">
    <testcase classname="test.Resume tests" name="should correctly backup and restore backup10m" time="16.723">
      <system-out><![CDATA[Backup process close null SIGTERM
Backup process close 0 null
]]></system-out>
    </testcase>
    <testcase classname="test.Resume tests" name="should correctly backup and restore backup10m using --output" time="16.995">
      <system-out><![CDATA[Backup process close null SIGTERM
Backup process close 0 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="#unit Configuration" tests="12" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:52" time="0.005">
    <testcase classname="test.#unit Configuration" name="respects the COUCH_URL env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_DATABASE env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_BUFFER_SIZE env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_PARALLELISM env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_REQUEST_TIMEOUT env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the CLOUDANT_IAM_API_KEY env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the CLOUDANT_IAM_TOKEN_URL env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_LOG env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_RESUME env variable" time="0.001">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_OUTPUT env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_MODE env variable" time="0">
    </testcase>
    <testcase classname="test.#unit Configuration" name="respects the COUCH_QUIET env variable" time="0.001">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fatal errors using API for backup" tests="10" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:52" time="0.084">
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate when DB does not exist" time="0.008">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on BulkGetError" time="0.008">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on Unauthorized existence check" time="0.004">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on Forbidden no _reader" time="0.004">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on _bulk_get HTTPFatalError" time="0.016">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on NoLogFileName" time="0">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on LogDoesNotExist" time="0.001">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on IncompleteChangesInLogFile" time="0.011">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on _changes HTTPFatalError" time="0.014">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on SpoolChangesError" time="0.012">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fatal errors using API for restore" tests="9" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:52" time="0.151">
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on Unauthorized db existence check" time="0.008">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on Forbidden no _writer" time="0.013">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on RestoreDatabaseNotFound" time="0.006">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on notEmptyDBErr when database is not empty" time="0.006">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on notEmptyDBErr when database is not new" time="0.004">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on _bulk_docs HTTPFatalError" time="0.009">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on _bulk_docs HTTPFatalError from system database" time="0.041">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on _bulk_docs HTTPFatalError large stream" time="0.042">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on multiple _bulk_docs HTTPFatalError" time="0.013">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fatal errors using CLI for backup" tests="10" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:52" time="4.257">
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate when DB does not exist" time="0.445">
      <system-out><![CDATA[Backup process close 10 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on BulkGetError" time="0.455">
      <system-out><![CDATA[Backup process close 50 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on Unauthorized existence check" time="0.405">
      <system-out><![CDATA[Backup process close 11 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on Forbidden no _reader" time="0.405">
      <system-out><![CDATA[Backup process close 12 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on _bulk_get HTTPFatalError" time="0.48">
      <system-out><![CDATA[Backup process close 40 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on NoLogFileName" time="0.4">
      <system-out><![CDATA[Backup process close 20 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on LogDoesNotExist" time="0.375">
      <system-out><![CDATA[Backup process close 21 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on IncompleteChangesInLogFile" time="0.434">
      <system-out><![CDATA[Backup process close 22 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on _changes HTTPFatalError" time="0.426">
      <system-out><![CDATA[Backup process close 40 null
]]></system-out>
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate on SpoolChangesError" time="0.419">
      <system-out><![CDATA[Backup process close 30 null
]]></system-out>
    </testcase>
  </testsuite>
  <testsuite name="#unit Fatal errors using CLI for restore" tests="9" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:56" time="3.968">
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on Unauthorized db existence check" time="0.391">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on Forbidden no _writer" time="0.476">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on RestoreDatabaseNotFound" time="0.439">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on notEmptyDBErr when database is not empty" time="0.379">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on notEmptyDBErr when database is not new" time="0.424">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on _bulk_docs HTTPFatalError" time="0.431">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on _bulk_docs HTTPFatalError from system database" time="0.512">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on _bulk_docs HTTPFatalError large stream" time="0.472">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on multiple _bulk_docs HTTPFatalError" time="0.433">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fetching batches from a log file" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:00" time="0.003">
    <testcase classname="test.#unit Fetching batches from a log file" name="should fetch multiple batches correctly" time="0.002">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fetching summary from the log file" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:00" time="0.002">
    <testcase classname="test.#unit Fetching summary from the log file" name="should fetch a summary correctly" time="0.001">
    </testcase>
  </testsuite>
  <testsuite name="#unit Default parameters Backup command-line" tests="23" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:00" time="0.045">
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_URL env variable if the --url backup command-line parameter is missing" time="0.014">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_DATABASE env variable if the --db backup command-line parameter is missing" time="0.002">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_BUFFER_SIZE env variable if the --buffer-size backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_PARALLELISM env variable if the --parallelism backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_REQUEST_TIMEOUT env variable if the --request-timeout backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the CLOUDANT_IAM_API_KEY env variable if the --iam-api-key backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_LOG env variable if the --log backup command-line parameter is missing" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_RESUME env variable if the --resume backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_OUTPUT env variable if the --output backup command-line parameter is missing" time="0.002">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_MODE env variable if the --mode backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the COUCH_QUIET env variable if the --quiet backup command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --url command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --db command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --buffer-size command-line parameter" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --parallelism command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --request-timeout command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --iam-api-key command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --log command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --resume command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --output command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --mode full command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --mode shallow command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --quiet command-line parameter" time="0.001">
    </testcase>
  </testsuite>
  <testsuite name="#unit Default parameters Restore command-line" tests="14" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:00" time="0.016">
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_URL env variable if the --url restore command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_DATABASE env variable if the --db restore command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_BUFFER_SIZE env variable if the --buffer-size restore command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_PARALLELISM env variable if the --parallelism restore command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_REQUEST_TIMEOUT env variable if the --request-timeout restore command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the CLOUDANT_IAM_API_KEY env variable if the --iam-api-key restore command-line parameter is missing" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the COUCH_QUIET env variable if the --quiet restorer command-line parameter is missing" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --url command-line parameter" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --db command-line parameter" time="0">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --buffer-size command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --parallelism command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --request-timeout command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --iam-api-key command-line parameter" time="0.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --quiet command-line parameter" time="0">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check request headers" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:00" time="0.005">
    <testcase classname="test.#unit Check request headers" name="should have a couchbackup user-agent" time="0.005">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check request response error callback" tests="8" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:00" time="10.593">
    <testcase classname="test.#unit Check request response error callback" name="should not callback with error for 200 response" time="0.004">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with error after 3 500 responses" time="2.016">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with error after 3 POST 503 responses" time="2.017">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with error after 3 429 responses" time="2.019">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with fatal error for 404 response" time="0.005">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with same error for no status code error response" time="2.013">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should retry request if HTTP request gets timed out" time="0.508">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with error code ESOCKETTIMEDOUT if 3 HTTP requests gets timed out" time="2.007">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check request response error callback #unit Check credentials" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:11" time="0.009">
    <testcase classname="test.#unit Check request response error callback #unit Check credentials" name="should properly decode username and password" time="0.009">
    </testcase>
  </testsuite>
  <testsuite name="#unit Perform backup using shallow backup" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:11" time="0.552">
    <testcase classname="test.#unit Perform backup using shallow backup" name="should perform a shallow backup" time="0.016">
    </testcase>
    <testcase classname="test.#unit Perform backup using shallow backup" name="should perform a shallow backup with transient error" time="0.521">
    </testcase>
    <testcase classname="test.#unit Perform backup using shallow backup" name="should fail to perform a shallow backup on fatal error" time="0.012">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check spool changes" tests="4" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:11" time="15.914">
    <testcase classname="test.#unit Check spool changes" name="should terminate on request error" time="2.01">
    </testcase>
    <testcase classname="test.#unit Check spool changes" name="should terminate on bad HTTP status code response" time="2.013">
    </testcase>
    <testcase classname="test.#unit Check spool changes" name="should keep collecting changes" time="2.479">
    </testcase>
    <testcase classname="test.#unit Check spool changes" name="should keep collecting sparse changes" time="9.408">
    </testcase>
  </testsuite>
  <testsuite name="Longer spool changes checks" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:27" time="54.443">
    <testcase classname="test.Longer spool changes checks" name="#slow should keep collecting changes (25M)" time="54.18">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check database restore writer" tests="6" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:31:22" time="4.109">
    <testcase classname="test.#unit Check database restore writer" name="should complete successfully" time="0.024">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should terminate on a fatal error" time="0.007">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should retry on transient errors" time="2.033">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should fail after 3 transient errors" time="2.013">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should restore shallow backups without rev info successfully" time="0.022">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should get a batch error for non-empty array response with new_edits false" time="0.007">
    </testcase>
  </testsuite>
</testsuites>