blob: 4eed0cb0d1b62ce3ab697311ba6be78d52bd06c2 [file] [log] [blame]
Jiri Simsad7616c92015-03-24 23:44:30 -07001// Copyright 2015 The Vanadium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
Robert Kroeger94ec7562014-10-28 17:58:44 -07005package impl_test
6
7// Separate from impl_test to avoid contributing further to impl_test bloat.
8// TODO(rjkroege): Move all helper-related tests to here.
9
10import (
11 "io/ioutil"
12 "os"
13 "path"
14 "testing"
15
Todd Wangcd4b3cc2015-04-06 16:42:02 -070016 "v.io/x/ref/services/device/internal/impl"
Robert Kroeger22fcb032015-04-30 07:40:11 -070017 "v.io/x/ref/services/device/internal/impl/utiltest"
Robert Kroeger94ec7562014-10-28 17:58:44 -070018)
19
20func TestBaseCleanupDir(t *testing.T) {
21 dir, err := ioutil.TempDir("", "impl_helper_test")
22 if err != nil {
23 t.Fatalf("ioutil.TempDir() failed: %v", err)
24 }
25 defer os.RemoveAll(dir)
26
27 // Setup some files to delete.
28 helperTarget := path.Join(dir, "helper_target")
29 if err := os.MkdirAll(helperTarget, os.FileMode(0700)); err != nil {
30 t.Fatalf("os.MkdirAll(%s) failed: %v", helperTarget, err)
31 }
32
33 nohelperTarget := path.Join(dir, "nohelper_target")
34 if err := os.MkdirAll(nohelperTarget, os.FileMode(0700)); err != nil {
35 t.Fatalf("os.MkdirAll(%s) failed: %v", nohelperTarget, err)
36 }
37
38 // Setup a helper.
Robert Kroeger22fcb032015-04-30 07:40:11 -070039 helper := utiltest.GenerateSuidHelperScript(t, dir)
Robert Kroeger94ec7562014-10-28 17:58:44 -070040
41 impl.WrapBaseCleanupDir(helperTarget, helper)
42 if _, err := os.Stat(helperTarget); err == nil || os.IsExist(err) {
43 t.Fatalf("%s should be missing but isn't", helperTarget)
44 }
45
46 impl.WrapBaseCleanupDir(nohelperTarget, "")
47 if _, err := os.Stat(nohelperTarget); err == nil || os.IsExist(err) {
48 t.Fatalf("%s should be missing but isn't", nohelperTarget)
49 }
50}