github.com/cloudfoundry/libcfbuildpack@v1.91.23/helper/extract_tar_xz_test.go (about)

     1  /*
     2   * Copyright 2018-2020 the original author or authors.
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *
     8   *      https://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16  
    17  package helper_test
    18  
    19  import (
    20  	"path/filepath"
    21  	"testing"
    22  
    23  	"github.com/cloudfoundry/libcfbuildpack/helper"
    24  	"github.com/cloudfoundry/libcfbuildpack/test"
    25  	"github.com/onsi/gomega"
    26  	"github.com/sclevine/spec"
    27  	"github.com/sclevine/spec/report"
    28  )
    29  
    30  func TestExtractTarXz(t *testing.T) {
    31  	spec.Run(t, "ExtractTarXz", func(t *testing.T, _ spec.G, it spec.S) {
    32  
    33  		g := gomega.NewWithT(t)
    34  
    35  		var root string
    36  
    37  		it.Before(func() {
    38  			root = test.ScratchDir(t, "extract-tar-xz")
    39  		})
    40  
    41  		it("extracts the archive", func() {
    42  			g.Expect(helper.ExtractTarXz(filepath.Join("testdata", "test-archive.tar.xz"), root, 0)).To(gomega.Succeed())
    43  			g.Expect(filepath.Join(root, "fileA.txt")).To(gomega.BeARegularFile())
    44  			g.Expect(filepath.Join(root, "dirA", "fileB.txt")).To(gomega.BeARegularFile())
    45  			g.Expect(filepath.Join(root, "dirA", "fileC.txt")).To(gomega.BeARegularFile())
    46  		})
    47  		it("skips stripped components", func() {
    48  			g.Expect(helper.ExtractTarXz(filepath.Join("testdata", "test-archive.tar.xz"), root, 1)).To(gomega.Succeed())
    49  			g.Expect(filepath.Join(root, "fileB.txt")).To(gomega.BeARegularFile())
    50  			g.Expect(filepath.Join(root, "fileC.txt")).To(gomega.BeARegularFile())
    51  		})
    52  	}, spec.Report(report.Terminal{}))
    53  }