mirror of
https://github.com/minio/minio.git
synced 2024-12-23 21:55:53 -05:00
CPU tests now actually test properly on linux and return bool instead of int
This commit is contained in:
parent
5d4c02ad4a
commit
e71998c584
@ -5,14 +5,14 @@ package cpu
|
||||
// #include "cpu.h"
|
||||
import "C"
|
||||
|
||||
func HasSSE41() int {
|
||||
return int(C.has_sse41())
|
||||
func HasSSE41() bool {
|
||||
return int(C.has_sse41()) == 1
|
||||
}
|
||||
|
||||
func HasAVX() int {
|
||||
return int(C.has_avx())
|
||||
func HasAVX() bool {
|
||||
return int(C.has_avx()) == 1
|
||||
}
|
||||
|
||||
func HasAVX2() int {
|
||||
return int(C.has_avx2())
|
||||
func HasAVX2() bool {
|
||||
return int(C.has_avx2()) == 1
|
||||
}
|
||||
|
@ -1,8 +1,13 @@
|
||||
package cpu
|
||||
|
||||
import (
|
||||
. "gopkg.in/check.v1"
|
||||
"errors"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
. "gopkg.in/check.v1"
|
||||
)
|
||||
|
||||
func Test(t *testing.T) { TestingT(t) }
|
||||
@ -11,17 +16,47 @@ type MySuite struct{}
|
||||
|
||||
var _ = Suite(&MySuite{})
|
||||
|
||||
func hasCpuFeatureFromOS(feature string) (bool, error) {
|
||||
if runtime.GOOS == "linux" {
|
||||
command := exec.Command("/bin/cat", "/proc/cpuinfo")
|
||||
output, err := command.Output()
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
if strings.Contains(string(output), feature) {
|
||||
return true, nil
|
||||
} else {
|
||||
return false, nil
|
||||
}
|
||||
} else {
|
||||
// TODO find new way to test cpu flags on windows
|
||||
return false, errors.New("Not Implemented on this platform")
|
||||
}
|
||||
}
|
||||
|
||||
func (s *MySuite) TestHasSSE41(c *C) {
|
||||
var bool = HasSSE41()
|
||||
c.Check(bool, Equals, 1)
|
||||
if runtime.GOOS == "linux" {
|
||||
var flag = HasSSE41()
|
||||
osCheck, err := hasCpuFeatureFromOS("sse4_1")
|
||||
c.Assert(err, IsNil)
|
||||
c.Check(flag, Equals, osCheck)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *MySuite) TestHasAVX(c *C) {
|
||||
var bool = HasAVX()
|
||||
c.Check(bool, Equals, 1)
|
||||
if runtime.GOOS == "linux" {
|
||||
var flag = HasAVX()
|
||||
osFlag, err := hasCpuFeatureFromOS("avx")
|
||||
c.Assert(err, IsNil)
|
||||
c.Check(osFlag, Equals, flag)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *MySuite) TestHasAVX2(c *C) {
|
||||
var bool = HasAVX2()
|
||||
c.Check(bool, Equals, 0)
|
||||
if runtime.GOOS == "linux" {
|
||||
var flag = HasAVX2()
|
||||
osFlag, err := hasCpuFeatureFromOS("avx2")
|
||||
c.Assert(err, IsNil)
|
||||
c.Check(osFlag, Equals, flag)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user