[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 5/5] golang/xenlight: Add tests host related functionality functions
Create tests for the following functions: - GetVersionInfo - GetPhysinfo - GetDominfo - GetMaxCpus - GetOnlineCpus - GetMaxNodes - GetFreeMemory Signed-off-by: Ronald Rojas <ronladred@xxxxxxxxx> Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxx> --- - Removed individual Makefiles for each test for a single Makefile to test all files at once - Changed all tests to xeninfo directory - Applied libxl_<type>_{init/dispose} for IDL types in tests - Applied formating fixes CC: xen-devel@xxxxxxxxxxxxx CC: george.dunlap@xxxxxxxxxx CC: ian.jackson@xxxxxxxxxxxxx CC: wei.liu2@xxxxxxxxxx --- --- tools/golang/xenlight/test/xeninfo/Makefile | 34 +++++++++++++++++++++++ tools/golang/xenlight/test/xeninfo/dominfo.c | 31 +++++++++++++++++++++ tools/golang/xenlight/test/xeninfo/dominfo.go | 31 +++++++++++++++++++++ tools/golang/xenlight/test/xeninfo/freememory.c | 24 ++++++++++++++++ tools/golang/xenlight/test/xeninfo/freememory.go | 28 +++++++++++++++++++ tools/golang/xenlight/test/xeninfo/maxcpu.c | 16 +++++++++++ tools/golang/xenlight/test/xeninfo/maxcpu.go | 27 ++++++++++++++++++ tools/golang/xenlight/test/xeninfo/maxnodes.c | 16 +++++++++++ tools/golang/xenlight/test/xeninfo/maxnodes.go | 27 ++++++++++++++++++ tools/golang/xenlight/test/xeninfo/onlinecpu.c | 16 +++++++++++ tools/golang/xenlight/test/xeninfo/onlinecpu.go | 27 ++++++++++++++++++ tools/golang/xenlight/test/xeninfo/physinfo.c | 31 +++++++++++++++++++++ tools/golang/xenlight/test/xeninfo/physinfo.go | 32 +++++++++++++++++++++ tools/golang/xenlight/test/xeninfo/print.h | 3 ++ tools/golang/xenlight/test/xeninfo/versioninfo.c | 20 +++++++++++++ tools/golang/xenlight/test/xeninfo/versioninfo.go | 28 +++++++++++++++++++ 16 files changed, 391 insertions(+) create mode 100644 tools/golang/xenlight/test/xeninfo/Makefile create mode 100644 tools/golang/xenlight/test/xeninfo/dominfo.c create mode 100644 tools/golang/xenlight/test/xeninfo/dominfo.go create mode 100644 tools/golang/xenlight/test/xeninfo/freememory.c create mode 100644 tools/golang/xenlight/test/xeninfo/freememory.go create mode 100644 tools/golang/xenlight/test/xeninfo/maxcpu.c create mode 100644 tools/golang/xenlight/test/xeninfo/maxcpu.go create mode 100644 tools/golang/xenlight/test/xeninfo/maxnodes.c create mode 100644 tools/golang/xenlight/test/xeninfo/maxnodes.go create mode 100644 tools/golang/xenlight/test/xeninfo/onlinecpu.c create mode 100644 tools/golang/xenlight/test/xeninfo/onlinecpu.go create mode 100644 tools/golang/xenlight/test/xeninfo/physinfo.c create mode 100644 tools/golang/xenlight/test/xeninfo/physinfo.go create mode 100644 tools/golang/xenlight/test/xeninfo/print.h create mode 100644 tools/golang/xenlight/test/xeninfo/versioninfo.c create mode 100644 tools/golang/xenlight/test/xeninfo/versioninfo.go diff --git a/tools/golang/xenlight/test/xeninfo/Makefile b/tools/golang/xenlight/test/xeninfo/Makefile new file mode 100644 index 0000000..859e4d6 --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/Makefile @@ -0,0 +1,34 @@ +XEN_ROOT = $(CURDIR)/../../../../.. +include $(XEN_ROOT)/tools/Rules.mk + +GO ?= go + +TESTS = dominfo freememory maxcpu onlinecpu physinfo versioninfo +CBINARIES = $(TESTS:%=%-c) +GOBINARIES = $(TESTS:%=%-go) + +all: build + +test: clean build + for test in $(TESTS) ; do \ + ./$$test-c >> c.output ; \ + ./$$test-go >> go.output ; \ + if cmp -s "c.output" "go.output"; then\ + echo "$$test PASSED";\ + else \ + echo "$$test FAILED";\ + fi ; \ + done + +build: $(CBINARIES) $(GOBINARIES) + +%-c: %.c + gcc $(CFLAGS_libxenlight) -o $@ $< $(LDLIBS_libxenlight) + +%-go: %.go + GOPATH=$(XEN_ROOT)/tools/golang $(GO) build -o $@ $< + +clean: + rm -f *-c + rm -f *-go + rm -f *.output diff --git a/tools/golang/xenlight/test/xeninfo/dominfo.c b/tools/golang/xenlight/test/xeninfo/dominfo.c new file mode 100644 index 0000000..85f658d --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/dominfo.c @@ -0,0 +1,31 @@ +#include <stdio.h> +#include <stdlib.h> +#include <libxl.h> +#include "print.h" + +int main(){ + + libxl_ctx *context; + libxl_ctx_alloc(&context,LIBXL_VERSION, 0, NULL); + libxl_dominfo info; + libxl_dominfo_init(&info); + int err = libxl_domain_info(context, &info, 0); + if (err != 0) + return err; + + printf("%d\n%d\n", info.domid, info.ssidref); + printf("%s\n%s\n%s\n%s\n%s\n%s\n", bool_to_string(info.running), + bool_to_string(info.blocked), bool_to_string(info.paused), + bool_to_string(info.shutdown), bool_to_string(info.dying), + bool_to_string(info.never_stop)); + long cpu_time = info.cpu_time / ((long) 1<<35); + printf("%d\n%lu\n%lu\n%lu\n%lu\n%lu\n%lu\n%d\n%d\n%d\n", info.shutdown_reason, + info.outstanding_memkb, info.current_memkb, info.shared_memkb, + info.paged_memkb, info.max_memkb, cpu_time, info.vcpu_max_id, + info.vcpu_online, info.cpupool); + printf("%d\n", info.domain_type); + + libxl_dominfo_dispose(&info); + libxl_ctx_free(context); + +} diff --git a/tools/golang/xenlight/test/xeninfo/dominfo.go b/tools/golang/xenlight/test/xeninfo/dominfo.go new file mode 100644 index 0000000..bb9257b --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/dominfo.go @@ -0,0 +1,31 @@ +package main + +import ( + "fmt" + "os" + "xenproject.org/xenlight" +) + +func main() { + ctx := xenlight.Ctx + err := ctx.Open() + if err != nil { + os.Exit(-1) + } + defer ctx.Close() + info, err := ctx.DomainInfo(0) + if err != nil { + os.Exit(-1) + } + + fmt.Printf("%d\n%d\n", info.Domid, info.Ssidref) + //fmt.Printf("%s\n", info.SsidLabel) + fmt.Printf("%t\n%t\n%t\n%t\n%t\n%t\n", info.Running, + info.Blocked, info.Paused, info.Shutdown, info.Dying, info.NeverStop) + cpuTime := info.CpuTime / (1 << 35) + fmt.Printf("%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n", info.ShutdownReason, info.OutstandingMemkb, + info.CurrentMemkb, info.SharedMemkb, info.PagedMemkb, info.MaxMemkb, cpuTime, + info.VcpuMaxId, info.VcpuOnline, info.Cpupool) + fmt.Printf("%d\n", info.DomainType) + +} diff --git a/tools/golang/xenlight/test/xeninfo/freememory.c b/tools/golang/xenlight/test/xeninfo/freememory.c new file mode 100644 index 0000000..04ee90d --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/freememory.c @@ -0,0 +1,24 @@ +#include <stdio.h> +#include <stdlib.h> +#include <libxl.h> +#include "print.h" + +int main(){ + + libxl_ctx *context; + libxl_ctx_alloc(&context,LIBXL_VERSION, 0, NULL); + + uint64_t free_memory; + int err = libxl_get_free_memory(context, &free_memory); + if (err < 0) + { + printf("%d\n", err); + } + else + { + printf("%lu\n", free_memory); + } + libxl_ctx_free(context); + +} + diff --git a/tools/golang/xenlight/test/xeninfo/freememory.go b/tools/golang/xenlight/test/xeninfo/freememory.go new file mode 100644 index 0000000..69a7723 --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/freememory.go @@ -0,0 +1,28 @@ +package main + +import ( + "fmt" + "os" + "xenproject.org/xenlight" +) + +func main() { + ctx := xenlight.Ctx + err := ctx.Open() + if err != nil { + os.Exit(-1) + } + + defer ctx.Close() + if err != nil { + os.Exit(-1) + } + + free_memory, err := ctx.GetFreeMemory() + if err != nil { + fmt.Printf("%d\n", err) + } else { + fmt.Printf("%d\n", free_memory) + } + +} diff --git a/tools/golang/xenlight/test/xeninfo/maxcpu.c b/tools/golang/xenlight/test/xeninfo/maxcpu.c new file mode 100644 index 0000000..6ba4a87 --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/maxcpu.c @@ -0,0 +1,16 @@ +#include <stdio.h> +#include <stdlib.h> +#include <libxl.h> + +int main(){ + + libxl_ctx *context; + libxl_ctx_alloc(&context,LIBXL_VERSION, 0, NULL); + + int max_cpus = libxl_get_max_cpus(context); + printf("%d\n", max_cpus); + + libxl_ctx_free(context); + +} + diff --git a/tools/golang/xenlight/test/xeninfo/maxcpu.go b/tools/golang/xenlight/test/xeninfo/maxcpu.go new file mode 100644 index 0000000..f847c0d --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/maxcpu.go @@ -0,0 +1,27 @@ +package main + +import ( + "fmt" + "os" + "xenproject.org/xenlight" +) + +func main() { + ctx := xenlight.Ctx + err := ctx.Open() + if err != nil { + os.Exit(-1) + } + defer ctx.Close() + if err != nil { + os.Exit(-1) + } + + max_cpus, err := ctx.GetMaxCpus() + if err != nil { + fmt.Printf("%d\n", err) + } else { + fmt.Printf("%d\n", max_cpus) + } + +} diff --git a/tools/golang/xenlight/test/xeninfo/maxnodes.c b/tools/golang/xenlight/test/xeninfo/maxnodes.c new file mode 100644 index 0000000..0e79c8d --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/maxnodes.c @@ -0,0 +1,16 @@ +#include <stdio.h> +#include <stdlib.h> +#include <libxl.h> + +int main(){ + + libxl_ctx *context; + libxl_ctx_alloc(&context,LIBXL_VERSION, 0, NULL); + + int max_nodes = libxl_get_max_nodes(context); + printf("%d\n", max_nodes); + + libxl_ctx_free(context); + +} + diff --git a/tools/golang/xenlight/test/xeninfo/maxnodes.go b/tools/golang/xenlight/test/xeninfo/maxnodes.go new file mode 100644 index 0000000..906e596 --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/maxnodes.go @@ -0,0 +1,27 @@ +package main + +import ( + "fmt" + "os" + "xenproject.org/xenlight" +) + +func main() { + ctx := xenlight.Ctx + err := ctx.Open() + if err != nil { + os.Exit(-1) + } + defer ctx.Close() + if err != nil { + os.Exit(-1) + } + + max_nodes, err := ctx.GetMaxNodes() + if err != nil { + fmt.Printf("%d\n", err) + } else { + fmt.Printf("%d\n", max_nodes) + } + +} diff --git a/tools/golang/xenlight/test/xeninfo/onlinecpu.c b/tools/golang/xenlight/test/xeninfo/onlinecpu.c new file mode 100644 index 0000000..8da3414 --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/onlinecpu.c @@ -0,0 +1,16 @@ +#include <stdio.h> +#include <stdlib.h> +#include <libxl.h> + +int main(){ + + libxl_ctx *context; + libxl_ctx_alloc(&context,LIBXL_VERSION, 0, NULL); + + int online_cpus = libxl_get_online_cpus(context); + printf("%d\n", online_cpus); + + libxl_ctx_free(context); + +} + diff --git a/tools/golang/xenlight/test/xeninfo/onlinecpu.go b/tools/golang/xenlight/test/xeninfo/onlinecpu.go new file mode 100644 index 0000000..74323c4 --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/onlinecpu.go @@ -0,0 +1,27 @@ +package main + +import ( + "fmt" + "os" + "xenproject.org/xenlight" +) + +func main() { + ctx := xenlight.Ctx + err := ctx.Open() + if err != nil { + os.Exit(-1) + } + defer ctx.Close() + if err != nil { + os.Exit(-1) + } + + online_cpus, err := ctx.GetOnlineCpus() + if err != nil { + fmt.Printf("%d\n", err) + } else { + fmt.Printf("%d\n", online_cpus) + } + +} diff --git a/tools/golang/xenlight/test/xeninfo/physinfo.c b/tools/golang/xenlight/test/xeninfo/physinfo.c new file mode 100644 index 0000000..ba3aa44 --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/physinfo.c @@ -0,0 +1,31 @@ +#include <stdio.h> +#include <stdlib.h> +#include <libxl.h> +#include "print.h" + +int main(){ + + libxl_ctx *context; + libxl_ctx_alloc(&context,LIBXL_VERSION, 0, NULL); + libxl_physinfo info; + libxl_physinfo_init(&info); + int err= libxl_get_physinfo(context,&info); + if(err != 0){ + return err; + } + + printf("%d\n%d\n%d\n%d\n%d\n", info.threads_per_core, info.cores_per_socket, info.max_cpu_id, info.nr_cpus, info.cpu_khz); + printf("%lu\n%lu\n%lu\n%lu\n%lu\n%lu\n", info.total_pages, info.free_pages, info.scrub_pages, info.outstanding_pages, info.sharing_freed_pages, info.sharing_used_frames); + printf("%u\n",info.nr_nodes); + printf("%s\n%s\n", bool_to_string(info.cap_hvm), bool_to_string(info.cap_hvm_directio)); + + int i; + for(i = 0; i < 8; i++){ + printf("%u\n", info.hw_cap[i]); + } + + libxl_physinfo_init(&info); + libxl_ctx_free(context); + +} + diff --git a/tools/golang/xenlight/test/xeninfo/physinfo.go b/tools/golang/xenlight/test/xeninfo/physinfo.go new file mode 100644 index 0000000..cf7bdd4 --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/physinfo.go @@ -0,0 +1,32 @@ +package main + +import ( + "fmt" + "os" + "xenproject.org/xenlight" +) + +func main() { + ctx := xenlight.Ctx + err := ctx.Open() + if err != nil { + os.Exit(-1) + } + defer ctx.Close() + info, err := ctx.GetPhysinfo() + if err != nil { + os.Exit(-1) + } + + fmt.Printf("%d\n%d\n%d\n%d\n%d\n", info.ThreadsPerCore, info.CoresPerSocket, + info.MaxCpuId, info.NrCpus, info.CpuKhz) + fmt.Printf("%d\n%d\n%d\n%d\n%d\n%d\n", info.TotalPages, info.FreePages, + info.ScrubPages, info.OutstandingPages, info.SharingFreedPages, + info.SharingUsedFrames) + fmt.Printf("%d\n", info.NrNodes) + fmt.Printf("%t\n%t\n", info.CapHvm, info.CapHvmDirectio) + + for i := 0; i < 8; i++ { + fmt.Printf("%d\n", info.HwCap[i]) + } +} diff --git a/tools/golang/xenlight/test/xeninfo/print.h b/tools/golang/xenlight/test/xeninfo/print.h new file mode 100644 index 0000000..6aaa29c --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/print.h @@ -0,0 +1,3 @@ +char* bool_to_string(a){ + return (a? "true" : "false"); +} diff --git a/tools/golang/xenlight/test/xeninfo/versioninfo.c b/tools/golang/xenlight/test/xeninfo/versioninfo.c new file mode 100644 index 0000000..6d807c0 --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/versioninfo.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <stdlib.h> +#include <libxl.h> + +main(){ + + libxl_ctx *context; + libxl_ctx_alloc(&context,LIBXL_VERSION, 0, NULL); + libxl_version_info *info = libxl_get_version_info(context); + + printf("%d\n%d\n", info->xen_version_major, info->xen_version_minor); + printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n", info->xen_version_extra, info->compiler, + info->compile_by, info->compile_domain, info->compile_date, + info->capabilities, info->changeset); + printf("%lu\n%d\n", info->virt_start, info->pagesize); + printf("%s\n%s\n", info->commandline, info->build_id); + + libxl_ctx_free(context); + +} diff --git a/tools/golang/xenlight/test/xeninfo/versioninfo.go b/tools/golang/xenlight/test/xeninfo/versioninfo.go new file mode 100644 index 0000000..5545472 --- /dev/null +++ b/tools/golang/xenlight/test/xeninfo/versioninfo.go @@ -0,0 +1,28 @@ +package main + +import ( + "fmt" + "os" + "xenproject.org/xenlight" +) + +func main() { + ctx := xenlight.Ctx + err := ctx.Open() + if err != nil { + os.Exit(-1) + } + defer ctx.Close() + info, err := ctx.GetVersionInfo() + if err != nil { + os.Exit(-1) + } + + fmt.Printf("%d\n%d\n", info.XenVersionMajor, info.XenVersionMinor) + fmt.Printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n", info.XenVersionExtra, info.Compiler, + info.CompileBy, info.CompileDomain, info.CompileDate, info.Capabilities, + info.Changeset) + fmt.Printf("%d\n%d\n", info.VirtStart, info.Pagesize) + fmt.Printf("%s\n%s\n", info.Commandline, info.BuildId) + +} -- 2.7.3 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |