github.com/go-xe2/third@v1.0.3/golang.org/x/sys/windows/syscall_test.go (about)

     1  // Copyright 2013 The Go 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  // +build windows
     6  
     7  package windows_test
     8  
     9  import (
    10  	"syscall"
    11  	"testing"
    12  
    13  	"github.com/go-xe2/third/golang.org/x/sys/windows"
    14  )
    15  
    16  func testSetGetenv(t *testing.T, key, value string) {
    17  	err := windows.Setenv(key, value)
    18  	if err != nil {
    19  		t.Fatalf("Setenv failed to set %q: %v", value, err)
    20  	}
    21  	newvalue, found := windows.Getenv(key)
    22  	if !found {
    23  		t.Fatalf("Getenv failed to find %v variable (want value %q)", key, value)
    24  	}
    25  	if newvalue != value {
    26  		t.Fatalf("Getenv(%v) = %q; want %q", key, newvalue, value)
    27  	}
    28  }
    29  
    30  func TestEnv(t *testing.T) {
    31  	testSetGetenv(t, "TESTENV", "AVALUE")
    32  	// make sure TESTENV gets set to "", not deleted
    33  	testSetGetenv(t, "TESTENV", "")
    34  }
    35  
    36  func TestGetProcAddressByOrdinal(t *testing.T) {
    37  	// Attempt calling shlwapi.dll:IsOS, resolving it by ordinal, as
    38  	// suggested in
    39  	// https://msdn.microsoft.com/en-us/library/windows/desktop/bb773795.aspx
    40  	h, err := windows.LoadLibrary("shlwapi.dll")
    41  	if err != nil {
    42  		t.Fatalf("Failed to load shlwapi.dll: %s", err)
    43  	}
    44  	procIsOS, err := windows.GetProcAddressByOrdinal(h, 437)
    45  	if err != nil {
    46  		t.Fatalf("Could not find shlwapi.dll:IsOS by ordinal: %s", err)
    47  	}
    48  	const OS_NT = 1
    49  	r, _, _ := syscall.Syscall(procIsOS, 1, OS_NT, 0, 0)
    50  	if r == 0 {
    51  		t.Error("shlwapi.dll:IsOS(OS_NT) returned 0, expected non-zero value")
    52  	}
    53  }