Fix the region filtering/selection for the align.sh test. The current jq
filter falls over if two regions match the criteria because array
elements got flattened to the top level.
Cc: Dan Williams <dan.j.williams(a)intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma(a)intel.com>
---
test/align.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/align.sh b/test/align.sh
index 0129255..81d1fbc 100755
--- a/test/align.sh
+++ b/test/align.sh
@@ -34,7 +34,7 @@ is_aligned() {
set -e
trap 'err $LINENO cleanup' ERR
-region=$($NDCTL list -R -b ACPI.NFIT | jq -r '.[] | [select(.available_size ==
.size)] | .[0].dev')
+region=$($NDCTL list -R -b ACPI.NFIT | jq -r '[.[] | select(.available_size ==
.size)][0] | .dev')
if [ "x$region" = "xnull" ]; then
unset $region
--
2.26.2
Show replies by thread
A fresh qemu based system may not have its labels initialized. In this
case, align.sh would get skipped because the label-less namespaces would
be using all available region capacity.
Fix this by initializing labels if a usable region is not found the
first time around, and try again.
Cc: Dan Williams <dan.j.williams(a)intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma(a)intel.com>
---
test/align.sh | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/test/align.sh b/test/align.sh
index 81d1fbc..37b2a1d 100755
--- a/test/align.sh
+++ b/test/align.sh
@@ -34,8 +34,19 @@ is_aligned() {
set -e
trap 'err $LINENO cleanup' ERR
-region=$($NDCTL list -R -b ACPI.NFIT | jq -r '[.[] | select(.available_size ==
.size)][0] | .dev')
+find_region()
+{
+ $NDCTL list -R -b ACPI.NFIT | jq -r '[.[] | select(.available_size == .size)][0] |
.dev'
+}
+region=$(find_region)
+if [ "x$region" = "xnull" ]; then
+ # this is destructive
+ $NDCTL disable-region -b ACPI.NFIT all
+ $NDCTL init-labels -f -b ACPI.NFIT all
+ $NDCTL enable-region -b ACPI.NFIT all
+fi
+region=$(find_region)
if [ "x$region" = "xnull" ]; then
unset $region
echo "unable to find empty region"
--
2.26.2