tests/tests.yml

Sun, 31 Dec 2006 19:29:46 -0500

author
brett
date
Sun, 31 Dec 2006 19:29:46 -0500
branch
trunk
changeset 17
481a2b4be471
parent 16
29794d4d41aa
child 19
bb6e9f4af1a5
permissions
-rw-r--r--

[svn] Lots of tests for various boundary cases, and slightly better handling for
some of them.

- name: basic .tar
  filenames: test-1.23.tar
  baseline: |
    tar -xf $1

- name: basic .tar.gz
  filenames: test-1.23.tar.gz
  baseline: |
    tar -zxf $1

- name: basic .tar.bz2
  filenames: test-1.23.tar.bz2
  baseline: |
    mkdir test-1.23
    cd test-1.23
    tar -jxf ../$1

- name: basic .zip
  filenames: test-1.23.zip
  baseline: |
    mkdir test-1.23
    cd test-1.23
    unzip -q ../$1

- name: basic .deb
  filenames: test-1.23_all.deb
  baseline: |
    TD=$PWD
    mkdir test-1.23
    cd /tmp
    ar x $TD/$1 data.tar.gz
    cd $TD/test-1.23
    tar -zxf /tmp/data.tar.gz
    rm /tmp/data.tar.gz

- name: recursion and permissions
  filenames: test-recursive-badperms.tar.bz2
  options: -r
  baseline: |
    mkdir test-recursive-badperms
    cd test-recursive-badperms
    tar -jxf ../$1
    mkdir test-badperms
    cd test-badperms
    tar -xf ../test-badperms.tar
    chmod 755 testdir
  posttest: |
    if [ "x`cat test-recursive-badperms/test-badperms/testdir/testfile`" = \
         "xhey" ]; then exit 0; else exit 1; fi

- name: decompression
  directory: inside-dir
  filenames: ../test-text.gz
  baseline: |
    zcat $1 >test-text

- name: decompression with -r
  directory: inside-dir
  filenames: ../test-text.gz
  options: -r
  baseline: |
    zcat $1 >test-text

- name: decompression with -fr
  directory: inside-dir
  filenames: ../test-text.gz
  options: -fr
  baseline: |
    zcat $1 >test-text

- name: overwrite protection
  filenames: test-1.23.tar.bz2
  baseline: |
    mkdir test-1.23 test-1.23.1
    cd test-1.23.1
    tar -jxf ../$1
  prerun: |
    mkdir test-1.23

- name: overwrite option
  filenames: test-1.23.tar.bz2
  options: -o
  baseline: |
    mkdir test-1.23
    cd test-1.23
    tar -jxf ../$1
  prerun: |
    mkdir test-1.23 

- name: flat option
  directory: inside-dir
  filenames: ../test-1.23.tar.bz2
  options: -f
  baseline: |
    tar -jxf $1

- name: flat recursion and permissions
  directory: inside-dir
  filenames: ../test-recursive-badperms.tar.bz2
  options: -fr
  baseline: |
    tar -jxf $1
    tar -xf test-badperms.tar
    chmod 755 testdir
  posttest: |
    if [ "x`cat testdir/testfile`" != "xhey" ]; then exit 1; fi

- name: no files
  error: true
  grep: "[Uu]sage"

- name: bad file
  error: true
  filenames: nonexistent-file.tar

- name: not an archive
  error: true
  filenames: tests.yml

- name: bad options
  options: --nonexistent-option
  filenames: test-1.23.tar
  error: true

- name: --version
  options: --version
  grep: ersion \d+\.\d+
  filenames: test-1.23.tar
  baseline: |
    exit 0

- name: one good archive of many
  filenames: tests.yml test-1.23.tar nonexistent-file.tar
  error: true
  baseline: |
    tar -xf $2

- name: silence
  filenames: tests.yml
  options: -qq
  error: true
  antigrep: .

- name: can't write to directory
  directory: inside-dir
  filenames: ../test-1.23.tar
  error: true
  grep: ERROR
  antigrep: Traceback
  prerun: |
    chmod 500 .

mercurial