# file      : tests/package-archive/testscript
# license   : MIT; see accompanying LICENSE file

# Note that searching for packages directly in $src_base is a bad idea, since
# removing testscript working directories while testing in source makes the
# find utility to fail with the 'no such file or directory' error. Thus, we
# clone the archives into the test working directories and search there.
#
clone_arcs = [cmdline] \
  cp $src_base/libhello-0.1.0.tar.gz $src_base/libhello-0.1.0+1.tar.gz ./

: pkg-verify-archive
:
{{
  test.arguments += bpkg_util_pkg_verify_archive

  : non-existing-archive
  :
  $* libhello-0.1.0.tar.gz 2>>EOE != 0
    error: archive file 'libhello-0.1.0.tar.gz' does not exist
    EOE

  : success
  :
  $* $src_base/libhello-0.1.0.tar.gz >>EOO
    libhello
    0.1.0
    hello
    EOO
}}

: pkg-find-archives
:
{{
  test.arguments += bpkg_util_pkg_find_archives

  : none
  :
  {
    $clone_arcs

    $* 'libhello' '0.2.0' $~
  }

  : package
  :
  {
    $clone_arcs

    $* 'libhello' '*' $~ >>/~"%EOO%"
      %\(
      $~/libhello-0.1.0.tar.gz
      $~/libhello-0.1.0+1.tar.gz
      %|
      $~/libhello-0.1.0+1.tar.gz
      $~/libhello-0.1.0.tar.gz
      %\)
      EOO
  }

  : package-version
  :
  {
    $clone_arcs

    $* 'libhello' '0.1.0' $~ >/"$~/libhello-0.1.0.tar.gz"
  }

  : package-revision
  :
  {
    $clone_arcs

    $* 'libhello' '0.1.0+1' $~ >/"$~/libhello-0.1.0+1.tar.gz"
  }

  : package-revisions1
  :
  {
    $clone_arcs

    $* 'libhello' '0.1.0*' $~ >>/~"%EOO%"
      %\(
      $~/libhello-0.1.0.tar.gz
      $~/libhello-0.1.0+1.tar.gz
      %|
      $~/libhello-0.1.0+1.tar.gz
      $~/libhello-0.1.0.tar.gz
      %\)
      EOO
  }

  : package-revisions2
  :
  {
    $clone_arcs

    $* 'libhello' '0.1.0+2*' $~ >>/~"%EOO%"
      %\(
      $~/libhello-0.1.0.tar.gz
      $~/libhello-0.1.0+1.tar.gz
      %|
      $~/libhello-0.1.0+1.tar.gz
      $~/libhello-0.1.0.tar.gz
      %\)
      EOO
  }
}}

: pkg-find-archive
:
{{
  test.arguments += bpkg_util_pkg_find_archive

  : non-existent
  :
  $* 'libhello-0.1.0.*' $~

  : existing
  :
  {
    $clone_arcs

    $* 'libhello-0.1.0.*' $~ >>/"EOO"
      $~/libhello-0.1.0.tar.gz
      libhello
      0.1.0
      hello
      EOO
  }
}}
