github.com/saferwall/pe@v1.5.2/helper_test.go (about) 1 // Copyright 2021 Saferwall. All rights reserved. 2 // Use of this source code is governed by Apache v2 license 3 // license that can be found in the LICENSE file. 4 5 package pe 6 7 import ( 8 "testing" 9 ) 10 11 func TestIsEXE(t *testing.T) { 12 13 tests := []struct { 14 in string 15 out bool 16 }{ 17 {getAbsoluteFilePath("test/liblzo2-2.dll"), false}, 18 {getAbsoluteFilePath("test/putty.exe"), true}, 19 } 20 21 for _, tt := range tests { 22 t.Run(tt.in, func(t *testing.T) { 23 file, err := New(tt.in, &Options{}) 24 if err != nil { 25 t.Fatalf("New(%s) failed, reason: %v", tt.in, err) 26 } 27 err = file.Parse() 28 if err != nil { 29 t.Fatalf("Parse(%s) failed, reason: %v", tt.in, err) 30 } 31 32 got := file.IsEXE() 33 if got != tt.out { 34 t.Errorf("IsEXE(%s) got %v, want %v", tt.in, got, tt.out) 35 } 36 37 }) 38 } 39 } 40 41 func TestIsDLL(t *testing.T) { 42 43 tests := []struct { 44 in string 45 out bool 46 }{ 47 {getAbsoluteFilePath("test/liblzo2-2.dll"), true}, 48 {getAbsoluteFilePath("test/putty.exe"), false}, 49 } 50 51 for _, tt := range tests { 52 t.Run(tt.in, func(t *testing.T) { 53 file, err := New(tt.in, &Options{}) 54 if err != nil { 55 t.Fatalf("New(%s) failed, reason: %v", tt.in, err) 56 } 57 err = file.Parse() 58 if err != nil { 59 t.Fatalf("Parse(%s) failed, reason: %v", tt.in, err) 60 } 61 62 got := file.IsDLL() 63 if got != tt.out { 64 t.Errorf("IsDLL(%s) got %v, want %v", tt.in, got, tt.out) 65 } 66 67 }) 68 } 69 } 70 71 func TestIsDriver(t *testing.T) { 72 73 tests := []struct { 74 in string 75 out bool 76 }{ 77 {getAbsoluteFilePath("test/liblzo2-2.dll"), false}, 78 {getAbsoluteFilePath("test/WdBoot.sys"), true}, 79 } 80 81 for _, tt := range tests { 82 t.Run(tt.in, func(t *testing.T) { 83 file, err := New(tt.in, &Options{}) 84 if err != nil { 85 t.Fatalf("New(%s) failed, reason: %v", tt.in, err) 86 } 87 err = file.Parse() 88 if err != nil { 89 t.Fatalf("Parse(%s) failed, reason: %v", tt.in, err) 90 } 91 92 got := file.IsDriver() 93 if got != tt.out { 94 t.Errorf("IsDriver(%s) got %v, want %v", tt.in, got, tt.out) 95 } 96 97 }) 98 } 99 }