1#!/bin/sh 2#-*-sh-*- 3 4# 5# Copyright © 2009 CNRS 6# Copyright © 2009-2020 Inria. All rights reserved. 7# Copyright © 2009 Université Bordeaux 8# Copyright © 2014 Cisco Systems, Inc. All rights reserved. 9# See COPYING in top-level directory. 10# 11 12HWLOC_top_srcdir="@HWLOC_top_srcdir@" 13HWLOC_top_builddir="@HWLOC_top_builddir@" 14srcdir="$HWLOC_top_srcdir/utils/hwloc" 15builddir="$HWLOC_top_builddir/utils/hwloc" 16info="$builddir/hwloc-info" 17linuxdir="$HWLOC_top_srcdir/tests/hwloc/linux" 18 19HWLOC_PLUGINS_PATH=${HWLOC_top_builddir}/hwloc/.libs 20export HWLOC_PLUGINS_PATH 21 22HWLOC_DEBUG_CHECK=1 23export HWLOC_DEBUG_CHECK 24 25HWLOC_DONT_ADD_VERSION_INFO=1 26export HWLOC_DONT_ADD_VERSION_INFO 27 28: ${TMPDIR=/tmp} 29{ 30 tmp=` 31 (umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null 32 ` && 33 test -n "$tmp" && test -d "$tmp" 34} || { 35 tmp=$TMPDIR/foo$$-$RANDOM 36 (umask 077 && mkdir "$tmp") 37} || exit $? 38file="$tmp/test-hwloc-info.output" 39 40set -e 41( 42 echo "# (default)" 43 $info --if synthetic --input "node:2 core:3 pu:4" 44 echo 45 echo "# --topology" 46 $info --if synthetic --input "node:2 core:3 pu:4" --topology 47 echo 48 echo "# --support" 49 $info --if synthetic --input "node:2 core:3 pu:4" --support 50 echo 51 echo "# --objects" 52 $info --if synthetic --input "node:2 core:3 pu:4" --objects 53 echo 54 55 echo "# Core range" 56 $info --if synthetic --input "node:2 core:3 pu:4" core:2-4 57 echo 58 59 echo "# all ancestors of PU range" 60 $info --if synthetic --input "node:2 core:3 pu:4" -n --ancestors pu:10-11 61 echo 62 echo "# Core ancestors of PU range" 63 $info --if synthetic --input "node:2 core:3 pu:4" --ancestor core pu:7-9 64 echo 65 echo "# L2 ancestor of PU" 66 $info --if synthetic --input "node:2 core:2 l2:2 l1d:2 pu:2" --ancestor l2 pu:12 67 echo 68 echo "# L1 ancestor of PU range" 69 $info --if synthetic --input "node:2 core:2 l2:2 l1d:2 pu:2" --ancestor l1 -s pu:7-10 70 echo 71 72 echo "# Children of L2 and Core of Node, silent" 73 $info --if synthetic --input "node:2 core:2 l2:2 l1d:2 pu:2" --children -s l2:1 node:1.core:1 74 echo 75 echo "# L1d descendants of Core range, silent" 76 $info --if synthetic --input "node:2 core:2 l2:2 l1d:2 pu:2" --descendants l1d -s core:1-2 77 echo 78 79 echo "# 2 local memory for one PU" 80 $info --if synthetic --input "pack:4 [numa] l3:2 [numa] core:4 pu:2" --local-memory pu:8 81 echo 82 echo "# 2 local-or-larger memories for one PU, silent" 83 $info --if synthetic --input "pack:4 [numa] l3:2 [numa] core:4 pu:2" --local-memory-flags larger -s pu:8 84 echo 85 echo "# no local-or-larger memory for root, silent" 86 $info --if synthetic --input "pack:4 [numa] l3:2 [numa] core:4 pu:2" --local-memory-flags larger -s root 87 echo 88 echo "# no local-or-smaller memory for one PU, silent" 89 $info --if synthetic --input "pack:4 [numa] l3:2 [numa] core:4 pu:2" --local-memory-flags smaller -s pu:8 90 echo 91 echo "# 3 local-or-smaller memories for on Package, silent" 92 $info --if synthetic --input "pack:4 [numa] l3:2 [numa] core:4 pu:2" --local-memory-flags smaller -s pack:1 93 echo 94 echo "# no strict-local memory for one PU, silent" 95 $info --if synthetic --input "pack:4 [numa] l3:2 [numa] core:4 pu:2" --local-memory-flags none -s pu:8 96 echo 97 echo "# 1 strict-local memory for one NUMANode, silent" 98 $info --if synthetic --input "pack:4 [numa] l3:2 [numa] core:4 pu:2" --local-memory-flags none -s node:1 99 echo 100 echo "# 12 local-all memories for one PU, silent" 101 $info --if synthetic --input "pack:4 [numa] l3:2 [numa] core:4 pu:2" --local-memory-flags all\$ -s pu:3 102 echo 103 echo "# only the smallest locality among 2 local-or-larger memories for one PU, silent" 104 $info --if synthetic --input "pack:4 [numa] l3:2 [numa] core:4 pu:2" --local-memory-flags larger --best-memattr locality -s pu:63 105 echo 106 echo "# only the highest capacity among 2 local-or-larger memories for one PU, silent" 107 $info --if synthetic --input "pack:4 [numa(memory=1000000)] l3:2 [numa(memory=1000)] core:4 pu:2" --local-memory-flags larger --best-memattr capacity -s pu:63 108 echo 109 110 echo 111 echo "# cpukinds for the entire machine" 112 $info --if xml --input $linuxdir/fakeheterocpunuma.output all 113 echo 114 echo "# cpukind for a single PU" 115 $info --if xml --input $linuxdir/fakeheterocpunuma.output pu:15 116 echo 117 118) > "$file" 119@DIFF@ @HWLOC_DIFF_U@ @HWLOC_DIFF_W@ $srcdir/test-hwloc-info.output "$file" 120rm -rf "$tmp" 121