go-hep.org/x/hep@v0.38.1/groot/riofs/fileplugin_test.go (about)

     1  // Copyright ©2018 The go-hep 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  
     5  package riofs
     6  
     7  import (
     8  	"path/filepath"
     9  	"reflect"
    10  	"sort"
    11  	"testing"
    12  )
    13  
    14  func TestLocalFile(t *testing.T) {
    15  	local, err := filepath.Abs("../testdata/simple.root")
    16  	if err != nil {
    17  		t.Fatal(err)
    18  	}
    19  	f, err := openFile("file://" + local)
    20  	if err != nil {
    21  		t.Fatal(err)
    22  	}
    23  	defer f.Close()
    24  }
    25  
    26  func TestRegister(t *testing.T) {
    27  	func() {
    28  		defer func() {
    29  			e := recover()
    30  			if e == nil {
    31  				t.Fatalf("expected a panic")
    32  			}
    33  		}()
    34  		Register("file1", nil)
    35  	}()
    36  
    37  	func() {
    38  		defer func() {
    39  			e := recover()
    40  			if e == nil {
    41  				t.Fatalf("expected a panic")
    42  			}
    43  		}()
    44  		Register("test-register", openLocalFile)
    45  		Register("test-register", openLocalFile)
    46  	}()
    47  }
    48  
    49  func TestDrivers(t *testing.T) {
    50  	list := Drivers()
    51  	const name = "test-drivers"
    52  	defer func() {
    53  		drivers.Lock()
    54  		defer drivers.Unlock()
    55  		delete(drivers.db, name)
    56  	}()
    57  
    58  	Register(name, openLocalFile)
    59  	list = append(list, name)
    60  	sort.Strings(list)
    61  
    62  	if got, want := Drivers(), list; !reflect.DeepEqual(got, want) {
    63  		t.Fatalf("got=%v, want=%v", got, want)
    64  	}
    65  }