github.com/hlts2/go@v0.0.0-20170904000733-812b34efaed8/src/internal/cpu/cpu_test.go (about)

     1  // Copyright 2017 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  package cpu_test
     6  
     7  import (
     8  	"internal/cpu"
     9  	"runtime"
    10  	"testing"
    11  )
    12  
    13  func TestAMD64minimalFeatures(t *testing.T) {
    14  	if runtime.GOARCH == "amd64" {
    15  		if !cpu.X86.HasSSE2 {
    16  			t.Fatalf("HasSSE2 expected true, got false")
    17  		}
    18  	}
    19  }
    20  
    21  func TestAVX2hasAVX(t *testing.T) {
    22  	if runtime.GOARCH == "amd64" {
    23  		if cpu.X86.HasAVX2 && !cpu.X86.HasAVX {
    24  			t.Fatalf("HasAVX expected true, got false")
    25  		}
    26  	}
    27  }
    28  
    29  func TestPPC64minimalFeatures(t *testing.T) {
    30  	if runtime.GOARCH == "ppc64" || runtime.GOARCH == "ppc64le" {
    31  		if !cpu.PPC64.IsPOWER8 {
    32  			t.Fatalf("IsPOWER8 expected true, got false")
    33  		}
    34  		if !cpu.PPC64.HasVMX {
    35  			t.Fatalf("HasVMX expected true, got false")
    36  		}
    37  		if !cpu.PPC64.HasDFP {
    38  			t.Fatalf("HasDFP expected true, got false")
    39  		}
    40  		if !cpu.PPC64.HasVSX {
    41  			t.Fatalf("HasVSX expected true, got false")
    42  		}
    43  		if !cpu.PPC64.HasISEL {
    44  			t.Fatalf("HasISEL expected true, got false")
    45  		}
    46  		if !cpu.PPC64.HasVCRYPTO {
    47  			t.Fatalf("HasVCRYPTO expected true, got false")
    48  		}
    49  	}
    50  }