mirror of
https://github.com/minio/minio.git
synced 2024-12-24 22:25:54 -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"
|
// #include "cpu.h"
|
||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
func HasSSE41() int {
|
func HasSSE41() bool {
|
||||||
return int(C.has_sse41())
|
return int(C.has_sse41()) == 1
|
||||||
}
|
}
|
||||||
|
|
||||||
func HasAVX() int {
|
func HasAVX() bool {
|
||||||
return int(C.has_avx())
|
return int(C.has_avx()) == 1
|
||||||
}
|
}
|
||||||
|
|
||||||
func HasAVX2() int {
|
func HasAVX2() bool {
|
||||||
return int(C.has_avx2())
|
return int(C.has_avx2()) == 1
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
package cpu
|
package cpu
|
||||||
|
|
||||||
import (
|
import (
|
||||||
. "gopkg.in/check.v1"
|
"errors"
|
||||||
|
"os/exec"
|
||||||
|
"runtime"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
. "gopkg.in/check.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test(t *testing.T) { TestingT(t) }
|
func Test(t *testing.T) { TestingT(t) }
|
||||||
@ -11,17 +16,47 @@ type MySuite struct{}
|
|||||||
|
|
||||||
var _ = Suite(&MySuite{})
|
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) {
|
func (s *MySuite) TestHasSSE41(c *C) {
|
||||||
var bool = HasSSE41()
|
if runtime.GOOS == "linux" {
|
||||||
c.Check(bool, Equals, 1)
|
var flag = HasSSE41()
|
||||||
|
osCheck, err := hasCpuFeatureFromOS("sse4_1")
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
c.Check(flag, Equals, osCheck)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MySuite) TestHasAVX(c *C) {
|
func (s *MySuite) TestHasAVX(c *C) {
|
||||||
var bool = HasAVX()
|
if runtime.GOOS == "linux" {
|
||||||
c.Check(bool, Equals, 1)
|
var flag = HasAVX()
|
||||||
|
osFlag, err := hasCpuFeatureFromOS("avx")
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
c.Check(osFlag, Equals, flag)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MySuite) TestHasAVX2(c *C) {
|
func (s *MySuite) TestHasAVX2(c *C) {
|
||||||
var bool = HasAVX2()
|
if runtime.GOOS == "linux" {
|
||||||
c.Check(bool, Equals, 0)
|
var flag = HasAVX2()
|
||||||
|
osFlag, err := hasCpuFeatureFromOS("avx2")
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
c.Check(osFlag, Equals, flag)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user