<testsuites name="test">
  <testsuite name="#unit Validate arguments" tests="33" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:13:27" time="0.14">
    <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.021">
    </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">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (wrong protocol) URL" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (no path) URL" time="0">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid (no protocol, no host) URL" time="0.001">
    </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">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid buffer size type" time="0.007">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid log type" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid log type" time="0.009">
    </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.008">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid output type" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid output type" time="0.009">
    </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.001">
    </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.006">
    </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.006">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns error for invalid resume type" time="0.001">
    </testcase>
    <testcase classname="test.#unit Validate arguments" name="returns no error for valid resume type" time="0.005">
    </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">
    </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:27" time="4.451">
    <testcase classname="test.Basic backup and restore using API" name="should backup animaldb to a file correctly" time="0.96">
      <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.825">
      <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.618">
      <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:32" time="11.537">
    <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.759">
      <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.459">
      <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.54">
      <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:43" time="5.415">
    <testcase classname="test.Basic backup and restore using CLI" name="should backup animaldb to a file correctly" time="1.401">
      <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.203">
    </testcase>
    <testcase classname="test.Basic backup and restore using CLI" name="should execute a shallow mode backup successfully" time="1.04">
      <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:49" time="14.185">
    <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.579">
      <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.377">
      <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.458">
      <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:03" time="6.463">
    <testcase classname="test.Compression tests using API" name="should backup animaldb to a compressed file" time="0.876">
      <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.632">
      <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.17">
      <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:09" time="8.432">
    <testcase classname="test.Compression tests using CLI" name="should backup animaldb to a compressed file" time="1.348">
      <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.626">
      <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.69">
      <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:18" time="332.101">
    <testcase classname="test.End to end backup and restore using API" name="should backup and restore animaldb" time="2.151">
      <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="329.188">
      <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:50" time="538.15">
    <testcase classname="test.End to end backup and restore using CLI" name="should backup and restore animaldb" time="2.692">
      <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="534.71">
      <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:48" time="3.928">
    <testcase classname="test.Encryption tests" name="should backup and restore animaldb via an encrypted file" time="3.67">
      <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:28:52" time="0.26">
    <testcase classname="test.Write error tests" name="calls callback with error set when stream is not writeable" time="0.007">
    </testcase>
  </testsuite>
  <testsuite name="Event tests" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:28:52" time="2.262">
    <testcase classname="test.Event tests" name="should get a finished event when using stdout" time="0.88">
    </testcase>
    <testcase classname="test.Event tests" name="should get a finished event when using file output" time="0.863">
    </testcase>
  </testsuite>
  <testsuite name="Resume tests using API" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:28:54" time="5.155">
    <testcase classname="test.Resume tests using API" name="should create a log file" time="0.857">
      <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.767">
      <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.761">
      <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:28:59" time="6.622">
    <testcase classname="test.Resume tests using CLI" name="should create a log file" time="1.343">
      <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.288">
    </testcase>
    <testcase classname="test.Resume tests using CLI" name="should restore resumed animaldb with blank line to a database correctly" time="2.221">
    </testcase>
  </testsuite>
  <testsuite name="Resume tests" tests="2" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:06" time="33.785">
    <testcase classname="test.Resume tests" name="should correctly backup and restore backup10m" time="16.6">
      <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.664">
      <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:40" 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">
    </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">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fatal errors using API for backup" tests="10" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:40" time="0.078">
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate when DB does not exist" time="0.007">
    </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.015">
    </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.008">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on _changes HTTPFatalError" time="0.013">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for backup" name="should terminate on SpoolChangesError" time="0.013">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fatal errors using API for restore" tests="9" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:40" time="0.123">
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on Unauthorized db existence check" time="0.007">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on Forbidden no _writer" time="0.012">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on RestoreDatabaseNotFound" time="0.005">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on notEmptyDBErr when database is not empty" time="0.005">
    </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.008">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on _bulk_docs HTTPFatalError from system database" time="0.038">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on _bulk_docs HTTPFatalError large stream" time="0.029">
    </testcase>
    <testcase classname="test.#unit Fatal errors using API for restore" name="should terminate on multiple _bulk_docs HTTPFatalError" time="0.009">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fatal errors using CLI for backup" tests="10" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:40" time="4.198">
    <testcase classname="test.#unit Fatal errors using CLI for backup" name="should terminate when DB does not exist" time="0.407">
      <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.393">
      <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.413">
      <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.431">
      <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.522">
      <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.343">
      <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.4">
      <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.428">
      <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.44">
      <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.416">
      <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:44" time="3.779">
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on Unauthorized db existence check" time="0.434">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on Forbidden no _writer" time="0.482">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on RestoreDatabaseNotFound" time="0.393">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on notEmptyDBErr when database is not empty" time="0.374">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on notEmptyDBErr when database is not new" time="0.391">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on _bulk_docs HTTPFatalError" time="0.396">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on _bulk_docs HTTPFatalError from system database" time="0.435">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on _bulk_docs HTTPFatalError large stream" time="0.438">
    </testcase>
    <testcase classname="test.#unit Fatal errors using CLI for restore" name="should terminate on multiple _bulk_docs HTTPFatalError" time="0.423">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fetching batches from a log file" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:48" time="0.002">
    <testcase classname="test.#unit Fetching batches from a log file" name="should fetch multiple batches correctly" time="0.001">
    </testcase>
  </testsuite>
  <testsuite name="#unit Fetching summary from the log file" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:48" time="0.001">
    <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:29:48" 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.012">
    </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.002">
    </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.001">
    </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.001">
    </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">
    </testcase>
    <testcase classname="test.#unit Default parameters Backup command-line" name="respects the backup --buffer-size command-line parameter" time="0.001">
    </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">
    </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">
    </testcase>
  </testsuite>
  <testsuite name="#unit Default parameters Restore command-line" tests="14" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:48" 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">
    </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.001">
    </testcase>
    <testcase classname="test.#unit Default parameters Restore command-line" name="respects the restore --url command-line parameter" time="0.001">
    </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">
    </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.001">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check request headers" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:48" time="0.004">
    <testcase classname="test.#unit Check request headers" name="should have a couchbackup user-agent" time="0.004">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check request response error callback" tests="8" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:48" time="10.587">
    <testcase classname="test.#unit Check request response error callback" name="should not callback with error for 200 response" time="0.003">
    </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.015">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should callback with error after 3 429 responses" time="2.015">
    </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.011">
    </testcase>
    <testcase classname="test.#unit Check request response error callback" name="should retry request if HTTP request gets timed out" time="0.51">
    </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.008">
    </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:29:59" time="0.011">
    <testcase classname="test.#unit Check request response error callback #unit Check credentials" name="should properly decode username and password" time="0.011">
    </testcase>
  </testsuite>
  <testsuite name="#unit Perform backup using shallow backup" tests="3" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:59" time="0.556">
    <testcase classname="test.#unit Perform backup using shallow backup" name="should perform a shallow backup" time="0.017">
    </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.014">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check spool changes" tests="4" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:29:59" time="15.675">
    <testcase classname="test.#unit Check spool changes" name="should terminate on request error" time="2.013">
    </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.233">
    </testcase>
    <testcase classname="test.#unit Check spool changes" name="should keep collecting sparse changes" time="9.413">
    </testcase>
  </testsuite>
  <testsuite name="Longer spool changes checks" tests="1" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:30:15" time="51.815">
    <testcase classname="test.Longer spool changes checks" name="#slow should keep collecting changes (25M)" time="51.546">
    </testcase>
  </testsuite>
  <testsuite name="#unit Check database restore writer" tests="6" errors="0" failures="0" skipped="0" timestamp="2023-05-03T16:31:07" time="4.096">
    <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.008">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should retry on transient errors" time="2.016">
    </testcase>
    <testcase classname="test.#unit Check database restore writer" name="should fail after 3 transient errors" time="2.015">
    </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.008">
    </testcase>
  </testsuite>
</testsuites>