mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-11-03 20:17:59 +00:00 
			
		
		
		
	* hostutil: query stats with context, update gopsutil, refactor tests * go mod vendor * minor comment wording
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package hostutil
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"strings"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/hashicorp/errwrap"
 | 
						|
)
 | 
						|
 | 
						|
func TestCollectHostInfo(t *testing.T) {
 | 
						|
	info, err := CollectHostInfo(context.Background())
 | 
						|
	if err != nil && !errwrap.ContainsType(err, new(HostInfoError)) {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	// Get all the possible HostInfoError errors and check for the resulting
 | 
						|
	// stat if the package is able to fetch it for the platform we're testing
 | 
						|
	// on.
 | 
						|
	errs := errwrap.GetAllType(err, new(HostInfoError))
 | 
						|
 | 
						|
	if info.Timestamp.IsZero() {
 | 
						|
		t.Fatal("expected non-zero Timestamp")
 | 
						|
	}
 | 
						|
	if !checkErrTypeExists(errs, "cpu") && info.CPU == nil {
 | 
						|
		t.Fatal("expected non-nil CPU value")
 | 
						|
	}
 | 
						|
	if !checkErrTypeExists(errs, "cpu_times") && info.CPUTimes == nil {
 | 
						|
		t.Fatal("expected non-nil CPUTimes value")
 | 
						|
	}
 | 
						|
	if !checkErrTypeExists(errs, "disk") && info.Disk == nil {
 | 
						|
		t.Fatal("expected non-nil Disk value")
 | 
						|
	}
 | 
						|
	if !checkErrTypeExists(errs, "host") && info.Host == nil {
 | 
						|
		t.Fatal("expected non-nil Host value")
 | 
						|
	}
 | 
						|
	if !checkErrTypeExists(errs, "memory") && info.Memory == nil {
 | 
						|
		t.Fatal("expected non-nil Memory value")
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// checkErrTypeExists is a helper that checks whether an particular
 | 
						|
// HostInfoError.Type exists within a set of errors.
 | 
						|
func checkErrTypeExists(errs []error, errType string) bool {
 | 
						|
	for _, e := range errs {
 | 
						|
		err, ok := e.(*HostInfoError)
 | 
						|
		if !ok {
 | 
						|
			return false
 | 
						|
		}
 | 
						|
 | 
						|
		// This is mainly for disk error since the type string can contain an
 | 
						|
		// index for the disk.
 | 
						|
		parts := strings.SplitN(err.Type, ".", 2)
 | 
						|
 | 
						|
		if parts[0] == errType {
 | 
						|
			return true
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return false
 | 
						|
}
 |