From patchwork Mon Jun 3 11:56:21 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 801317 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BAFB784A49 for ; Mon, 3 Jun 2024 11:56:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415806; cv=none; b=cADsJ7pOd7+9hhLTbBXQquBqdpM0cvekzSz+Led5eLnZu329QowldniSkopUgirFzTQNVqj/PipCHDvsXb4VVcGkx8kiTY/TlGbcg0PhZVlYJ3R4h0oyQsL4WVtVTFCMghysQdf/bXBxQEwRFQcmmbZlJBOs9hZx8C9xoFNvqoU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415806; c=relaxed/simple; bh=3WYBdk2baKz1XRGL0yVVK1NnWlbRI2SdG5ITwHWW+KM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HEl8VSSFl/jPsiVgjffRS9D5z3h1fBhpvOafq/Y4AnyNbi2Vjrjbnj3YQXw3XBaB6pYS3r4g6D+56y3DV5DzPWggkfZJwQa6AX/5sH60sVNTaB5VRnI1wz0xag9Tc+apAEk932MvYs/h3uSFY4ZumU7mUf9FlA3YTxHpZfHT3DY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ABBNTUKN; arc=none smtp.client-ip=209.85.210.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ABBNTUKN" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-702447766fdso3169880b3a.1 for ; Mon, 03 Jun 2024 04:56:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717415804; x=1718020604; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hmrZ5+TOtPxgncYs8I9YkHuXRTTzK57JkkNUbeKvp/Y=; b=ABBNTUKNTE8Y6hXMQMpQXqJd7M11GoU35P7T/iNvaNXGBhGVjzrCaZqZLvMYHK4EVi VD4H1h04+emJUlNXaNi4wE2hSmhWRg23RKcTG8lkj3zKRtYO+VLrnS/DuwB4+i/mip7a sB3s9myVQrKv2bdU0B2wAAuR0QevqarrZgBAub05wFMPDyxtLsHd0FUOAmzAAMjCm28R YSWLZZ8Txrd+bLu6wVqY3ZrMmW4ffqRgeYiu7UZls2WRHWy6PoPpOcVbYmOew600E5w0 LGYuWIsyh95z4iy8NHjmfjFjCfI+RI0XjIhEz1+nYAvesYwVmLC2RpY9KDQKBqq9Z9Bk lKWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717415804; x=1718020604; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hmrZ5+TOtPxgncYs8I9YkHuXRTTzK57JkkNUbeKvp/Y=; b=UBNk5sE5DFb+qDehCHpmAIiP3fB9DSp6Fc2jbxs+iZrcrMRUS5aMwTgGCcv33VEHLT 22h5trqtT8kK88gCKYP8WS1+jULBVUSzUKI8qaa0ozsLScy1Lq2LdSB4LEg5woAE6IRj 9rBbJdviVBofDNhQHjp2KCQ8tTF8yOtOaDQXC3zytQwUlX7Y5ct6GeWFymoYi7NLX7xW oZdPTR7YWRtm3Mo6dTMTZAwOmtYEjSSalCBcKoeoRoNNQRYcoYAFdJwCuXmG0Cw8ulH1 mTjMUEXqELDYLLCRHiA18ZtaSEUUNH7P+ht69Vw3ky9Iu7jpjCD3Eo+DOfKwcZ3SKLzD L46Q== X-Gm-Message-State: AOJu0YwkBP7YgiwtHpEhw4ToU3zsDkvbgHY7fdd4ENZGoC9lxa/cag6T MHPfDBDUfbb2ba7vvU2z5Q4oTg19Vaqw9Rf22ccu4f8OUswom3tf/w5l8Q== X-Google-Smtp-Source: AGHT+IFHKWROrqqzIUyPYLONZFy/S97YLPI/GZ74lIwR+8PPSHmWazHUTzVvFDo7ZoqQhUPfGVyMiA== X-Received: by 2002:a05:6a21:32a1:b0:1af:ad46:cd4a with SMTP id adf61e73a8af0-1b26f16ea65mr11073862637.12.1717415803964; Mon, 03 Jun 2024 04:56:43 -0700 (PDT) Received: from rigel.home.arpa (14-203-42-154.tpgi.com.au. [14.203.42.154]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-702425e1a71sm5328492b3a.88.2024.06.03.04.56.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jun 2024 04:56:43 -0700 (PDT) From: Kent Gibson To: linux-gpio@vger.kernel.org, brgl@bgdev.pl Cc: Kent Gibson Subject: [libgpiod][PATCH v2 1/8] tools: tests: don't mix string and array Date: Mon, 3 Jun 2024 19:56:21 +0800 Message-Id: <20240603115628.102616-2-warthog618@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240603115628.102616-1-warthog618@gmail.com> References: <20240603115628.102616-1-warthog618@gmail.com> Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Fix shellcheck SC2145[1] - argument mixes string and array. Separate the command from the array of arguments to avoid mixing. [1] https://www.shellcheck.net/wiki/SC2145 Signed-off-by: Kent Gibson --- tools/gpio-tools-test.bash | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash index 521556c..34ea744 100755 --- a/tools/gpio-tools-test.bash +++ b/tools/gpio-tools-test.bash @@ -174,18 +174,24 @@ gpiosim_cleanup() { run_tool() { # Executables to test are expected to be in the same directory as the # testing script. - output=$(timeout 10s $SOURCE_DIR/"$@" 2>&1) + cmd=$1 + shift + output=$(timeout 10s "$SOURCE_DIR/$cmd" "$@" 2>&1) status=$? } dut_run() { - coproc timeout 10s $SOURCE_DIR/"$@" 2>&1 + cmd=$1 + shift + coproc timeout 10s "$SOURCE_DIR/$cmd" "$@" 2>&1 DUT_PID=$COPROC_PID read -t1 -n1 -u ${COPROC[0]} DUT_FIRST_CHAR } dut_run_redirect() { - coproc timeout 10s $SOURCE_DIR/"$@" > $SHUNIT_TMPDIR/$DUT_OUTPUT 2>&1 + cmd=$1 + shift + coproc timeout 10s "$SOURCE_DIR/$cmd" "$@" > "$SHUNIT_TMPDIR/$DUT_OUTPUT" 2>&1 DUT_PID=$COPROC_PID # give the process time to spin up # FIXME - find a better solution From patchwork Mon Jun 3 11:56:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 801787 Received: from mail-pg1-f171.google.com (mail-pg1-f171.google.com [209.85.215.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E2B8386AFB for ; Mon, 3 Jun 2024 11:56:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415817; cv=none; b=CWzouC4IeGcgObqgvMeFZKKdeD4xe5Ndwe+UOy40sf+OnvFj26SUR+68wVZO2iXl7fm3gzbmpCvPlBxSD/M8sBLWN+aprpcZHgTQ0wkjctOoyBYwVqAwBb7DdyZFLjvzW0gHghLAtTma6Eak2elHoSEs0d/aNY+A1tpiy+PaUhY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415817; c=relaxed/simple; bh=6eCjg/V+kwlNl8kfKQR58UwRH55N9f+vgZ3vz4egIeo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=fUSP6m3UBuIVIxOu7JYkxmDMNl/I9n4lLwLy39vFXYWlDuHUeSaSa5IBMRf6hcZVaYgSTHrQBVRsAvjtWuDkSYq8X5Tpj0nOdYl1vEcAJ+dYbjEa55cWXBYpFPAzsl0sGzDzyDVpmmAkcVFXqJyclqYu9vAnqrmOXAriizsrKLk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=dDggDbvc; arc=none smtp.client-ip=209.85.215.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dDggDbvc" Received: by mail-pg1-f171.google.com with SMTP id 41be03b00d2f7-6570bd6c3d7so2343810a12.0 for ; Mon, 03 Jun 2024 04:56:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717415815; x=1718020615; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ry7sfna3orle+zXzrk0ZdW3l4LBSUpFBb6+Ja1Szbb8=; b=dDggDbvc0SiB3kR4DlroOvXFUeEDo5fTFiSL8C1W+k+xr9LflPcZdP2Nx87Xhs17zX lqiWiB1xTcQJvK6btWs5YWSb9VnOHXiepplie38gyytTK7mL3AmBVBJ456P6I6Y506Xf x/JKxETy2L2+5UKp8XXFSquEcB91RdnEvtsPnTS9onDwJ9tXrzB7i3xZuNlONnTSHvGE MIDNfbW+xsklW1ohKhJKO8KvsQcPpaEQQmI/b5v9UkfxbR8mSa6crRN52Oqktymm3m60 zHAnDO2cuitHLZ/AAYXbeynRZpCP8SVPMrB9+FiGBMqmy/osZa9L+4M6RSWIi0qDVzsp VRZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717415815; x=1718020615; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ry7sfna3orle+zXzrk0ZdW3l4LBSUpFBb6+Ja1Szbb8=; b=Kn/yZ5R+J6m+X9J4Zx3QGRaCJkMeOLFCJFLIDf8qK1Tvrw7TCJCFwE10GtWNlz0W0Q UDwoVUw1CwPv+vmaE2SNcjLqRVKiYYuHdf2CpDwFAq012NFjN9xWWmR0c++7LrTZEtjF Dc4I0BnaJxW5Auj7L8P12UnTaWuWmj8NBx1jPXeaRqZj7lc0gcnyNaAXOiwKZrsux7wy YnPUSgcjVkIRDJx4Snk7Q3Mr1uaOdyNM3EtULYfu4B6DcYH0Kp93ELgpElxTp92XVQO5 F3Vxz6L1L2m1eJ+pRP2SmwObpWf/DDvicxt68T0zI4grbTgIVCl6/nh9vwCJtiUoLDjX Qkrw== X-Gm-Message-State: AOJu0Yx+sA2kWKKJAcsZRhvi5n3+tOP3AITzgYGZuhAjsa8amsoWkaog bP2HjekhGgZhvuGzqnZcAOkt/ouyIZNUxj4mvTYt1qlWRkdRJW3fQYjwcw== X-Google-Smtp-Source: AGHT+IG2T/58ar2SWf5V+7bdVdkJ3i9dOFPWehvT/JhSU3JOyGS6tRBVJxDnxZrzkupozAXmtswCdg== X-Received: by 2002:a05:6a21:32a1:b0:1b2:3fc:9ab2 with SMTP id adf61e73a8af0-1b26f17db14mr10174953637.1.1717415814939; Mon, 03 Jun 2024 04:56:54 -0700 (PDT) Received: from rigel.home.arpa (14-203-42-154.tpgi.com.au. [14.203.42.154]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-702425e1a71sm5328492b3a.88.2024.06.03.04.56.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jun 2024 04:56:54 -0700 (PDT) From: Kent Gibson To: linux-gpio@vger.kernel.org, brgl@bgdev.pl Cc: Kent Gibson Subject: [libgpiod][PATCH v2 2/8] tools: tests: declare and assign separately Date: Mon, 3 Jun 2024 19:56:22 +0800 Message-Id: <20240603115628.102616-3-warthog618@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240603115628.102616-1-warthog618@gmail.com> References: <20240603115628.102616-1-warthog618@gmail.com> Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Fix shellcheck SC2155[1] - declare and assign separately to avoid masking return values. [1] https://www.shellcheck.net/wiki/SC2155 Signed-off-by: Kent Gibson --- tools/gpio-tools-test.bash | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash index 34ea744..6bbb06c 100755 --- a/tools/gpio-tools-test.bash +++ b/tools/gpio-tools-test.bash @@ -49,7 +49,8 @@ output_is() { num_lines_is() { [ "$1" -eq "0" ] || [ -z "$output" ] && return 0 - local NUM_LINES=$(echo "$output" | wc -l) + local NUM_LINES + NUM_LINES=$(echo "$output" | wc -l) assertEquals " number of lines:" "$1" "$NUM_LINES" } @@ -73,16 +74,18 @@ gpiosim_chip() { for ARG in "$@" do - local KEY=$(echo $ARG | cut -d"=" -f1) - local VAL=$(echo $ARG | cut -d"=" -f2) + local KEY VAL + KEY=$(echo "$ARG" | cut -d"=" -f1) + VAL=$(echo "$ARG" | cut -d"=" -f2) if [ "$KEY" = "num_lines" ] then echo $VAL > $BANKPATH/num_lines elif [ "$KEY" = "line_name" ] then - local OFFSET=$(echo $VAL | cut -d":" -f1) - local LINENAME=$(echo $VAL | cut -d":" -f2) + local OFFSET LINENAME + OFFSET=$(echo "$VAL" | cut -d":" -f1) + LINENAME=$(echo "$VAL" | cut -d":" -f2) local LINEPATH=$BANKPATH/line$OFFSET mkdir -p $LINEPATH @@ -92,10 +95,11 @@ gpiosim_chip() { echo 1 > $DEVPATH/live - local chip_name=$(<$BANKPATH/chip_name) - GPIOSIM_CHIP_NAME[$1]=$chip_name - GPIOSIM_CHIP_PATH[$1]="/dev/$chip_name" - GPIOSIM_DEV_NAME[$1]=$(<$DEVPATH/dev_name) + local CHIP_NAME + CHIP_NAME=$(<"$BANKPATH/chip_name") + GPIOSIM_CHIP_NAME[$1]=$CHIP_NAME + GPIOSIM_CHIP_PATH[$1]="/dev/$CHIP_NAME" + GPIOSIM_DEV_NAME[$1]=$(<"$DEVPATH/dev_name") } gpiosim_chip_number() { @@ -3044,14 +3048,16 @@ die() { # Must be done after we sources shunit2 as we need SHUNIT_VERSION to be set. oneTimeSetUp() { test "$SHUNIT_VERSION" = "$MIN_SHUNIT_VERSION" && return 0 - local FIRST=$(printf "$SHUNIT_VERSION\n$MIN_SHUNIT_VERSION\n" | sort -Vr | head -1) + local FIRST + FIRST=$(printf "$SHUNIT_VERSION\n$MIN_SHUNIT_VERSION\n" | sort -Vr | head -1) test "$FIRST" = "$MIN_SHUNIT_VERSION" && \ die "minimum shunit version required is $MIN_SHUNIT_VERSION (current version is $SHUNIT_VERSION" } check_kernel() { local REQUIRED=$1 - local CURRENT=$(uname -r) + local CURRENT + CURRENT=$(uname -r) SORTED=$(printf "$REQUIRED\n$CURRENT" | sort -V | head -n 1) From patchwork Mon Jun 3 11:56:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 801316 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0CA1F86AFA for ; Mon, 3 Jun 2024 11:57:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415827; cv=none; b=gwkocO899NwBueqAA+eIKY5x2vEKowza/mMsenjBiwKzHdOPLYLdDmbv0oez8zzQS5wAiods87Wuj2OX39hazN94lo8a7nhBZHUl5BAsjwZwho7w22FTNMDYF+OFNGblIm5KSBx9wXp4ViC4z3PdGfpMfxzLj2Ltmdl4NRMl7w8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415827; c=relaxed/simple; bh=3+/BMRdE3pbkMT5Amci5hcdy/w8bEkVwk8nLghsKvJQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=cUHkEoQvrozueCjNewWqCG5CdoldKZ2MMGu7l+oWr2rOkO77fPJ6NUdUoy8xkwf3mu4Ew3etJRTai34hVbOOAK0QmVKVn1CPk/FlZLo/3Iskhv2kYyiXFkyeje1dNR0yztQYbmgCWm0d2/g7/+E8DDJCjBoglFCnIHJmdtA61vU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JiKES6kR; arc=none smtp.client-ip=209.85.210.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JiKES6kR" Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-7025ca8bebcso1135593b3a.3 for ; Mon, 03 Jun 2024 04:57:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717415825; x=1718020625; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=aL/U1CcHePWTigOhrq/cysCXLH6V4Rzoc6hb31xlH+Y=; b=JiKES6kRaSKRfzbEpsN7IResMqj2JyoIiV7VhNHuKBBYzRHCyEahIzlIB7NuPy0UH4 b6leyCAlrT5yMx/Sk0NzBk1gTWXz2d/LfVzZGLYDK+x8gtkMmf9V/zMoOIB4hl2T30Ac B/1tQtVcDvLxQVFTfq7XjwLCH8w5vnADZig0j8TVd2eZdMNIg56e9SfEaMxY3PDc9yQg G2VBmq37AaeddKAGtASNYX/LQYL4lCRLnpwyzUcG4pdgD34xs+lyjAH/Ragk9Du0SG5g uzUI7KWW23nJraB0sJotFydEpkj2avOmvYKYIzS4IX3nSfJpAxKWY0lOYnmN1LJcJLR8 jdjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717415825; x=1718020625; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aL/U1CcHePWTigOhrq/cysCXLH6V4Rzoc6hb31xlH+Y=; b=pMOQBxX8XYmL6Y4EncE11QnFL7RhsijqddhXokwTV1LgLIf5ca05r4g/v0/CE85Oc2 JwhAWJfZ4zHowqjY41RilnyNIqCbgAdNFHsTCLtBUl3Wv2l53IdhQ0BkysghzTgyrCVz NvkfmbpNlExcTawFMDNcdWfBdnPE4KpvTFG6pw7KGbk+NbGJUxLM3s27+g511rSNz5cj viKhTJQTYtlqZ4fmiiRkTpKKdgLUH3FIKL8mtjcW4NhPYIOL+0RNiTzs8t8PQ8xKIGTl F3o1ebW3xEhtC0cD3xfIs6Ue5in/C/k8LaU1M49M/dEv9jlvTPjzy5G2qlnoNvgrSQVU BBrQ== X-Gm-Message-State: AOJu0Yx3VTaVS1utdN6G083AyJdmnRq3YBdmA5eaUasfS9+br4R7kN3V 1CjfVFpxUgrgMUaOGefnwvyaJHoPdntzr8GFlCQtccRV+QNrH2W8sIdTuA== X-Google-Smtp-Source: AGHT+IH55wCN/GywV6fJXdX/34pPtMTxEOgdS0s1s5tD9ZZFGsCGUM4UwSKc9WpZ2ImNF8LMDnYJnw== X-Received: by 2002:a05:6a21:32a8:b0:1ad:3d93:b71e with SMTP id adf61e73a8af0-1b26f30dc84mr9038400637.59.1717415825117; Mon, 03 Jun 2024 04:57:05 -0700 (PDT) Received: from rigel.home.arpa (14-203-42-154.tpgi.com.au. [14.203.42.154]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-702425e1a71sm5328492b3a.88.2024.06.03.04.57.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jun 2024 04:57:04 -0700 (PDT) From: Kent Gibson To: linux-gpio@vger.kernel.org, brgl@bgdev.pl Cc: Kent Gibson Subject: [libgpiod][PATCH v2 3/8] tools: tests: fix unused variables Date: Mon, 3 Jun 2024 19:56:23 +0800 Message-Id: <20240603115628.102616-4-warthog618@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240603115628.102616-1-warthog618@gmail.com> References: <20240603115628.102616-1-warthog618@gmail.com> Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Fix shellckeck SC2034[1] - foo appears unused. Prefix intentionally unused variables with "_" and remove variables not actually used. [1] https://www.shellcheck.net/wiki/SC2034 Signed-off-by: Kent Gibson --- tools/gpio-tools-test.bash | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash index 6bbb06c..b065296 100755 --- a/tools/gpio-tools-test.bash +++ b/tools/gpio-tools-test.bash @@ -146,7 +146,7 @@ gpiosim_wait_value() { local CHIPNAME=${GPIOSIM_CHIP_NAME[$1]} local PORT=$GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/value - for i in {1..30}; do + for _i in {1..30}; do [ "$(<$PORT)" = "$EXPECTED" ] && return sleep 0.01 done @@ -159,7 +159,6 @@ gpiosim_cleanup() { local NAME=${GPIOSIM_APP_NAME}-$$-$CHIP local DEVPATH=$GPIOSIM_CONFIGFS/$NAME - local BANKPATH=$DEVPATH/bank0 echo 0 > $DEVPATH/live find "$DEVPATH" -type d -name hog -exec rmdir '{}' '+' @@ -229,13 +228,13 @@ dut_readable() { } dut_flush() { - local JUNK + local _JUNK lines=() output= unset DUT_FIRST_CHAR - while read -t 0 -u ${COPROC[0]} JUNK + while read -t 0 -u "${COPROC[0]}" _JUNK do - read -t 0.1 -u ${COPROC[0]} JUNK || true + read -t 0.1 -u "${COPROC[0]}" _JUNK || true done } From patchwork Mon Jun 3 11:56:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 801786 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 49BC386AE9 for ; Mon, 3 Jun 2024 11:57:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415836; cv=none; b=kiJsctXRH528KaJSbyZw/zxgiJQ/MGD3OYxOloVH8RPrxZd2KcoQH09+QvP8JDP4OE/k0tlmPPm8TBe/umvPkFENMK3xYmnfe9TnB8FoCtbue1ObT+60l8t1ncQ1l2YS4xH4fm2GG6Ovk7z+9Mf623m/cEZdb/X7Asix+EiS8JY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415836; c=relaxed/simple; bh=SUVqWHOJqrEuaR+z+S97Oy0lsDMtfpNrLRPwncizSfU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=uDawI4rzVTma88h28lXZI117bj5Q/uVEw7Rxagk1pxcgp0m97s0eAaCMZlJfTAMGODXDk8VRQI5MjnHiWpM9MVE78XLWudxZi6wqAUiqpLZmQQG1zNmBtmeY0TtAlxB6Rt2dGxYh6Mx/4ZN4Pym2m+lfBgktVJ3NKfPWlufhRbc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HrWpyjgc; arc=none smtp.client-ip=209.85.215.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HrWpyjgc" Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-6bce380eb9bso2638770a12.0 for ; Mon, 03 Jun 2024 04:57:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717415834; x=1718020634; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pTQ5/ccHx7SVwnM9aooRlNY0TuvRMcHwyDigLDl8J9M=; b=HrWpyjgcHYV0WL1D6PmXCggSjWJFHJI2utZ2xGyHnYM31zt1gKWfGLZCSP68FJc5YT HCNdz2E9vTRxci3hHCdqXTYjvsZb9xAilX0uDaqqerRQ1YuTUraORLh0CPlJgvBzJ5CH Chftk57SHFfRFratxvF1O/+Qe0Zk5UdNNZeOYY7mBtOPCcexleVLuooI4rucfrDBovOt F2N7ZzygBwaub+gdvB7unaRuYSj3fDKgHC76chMx/B+hp2y7M9JkGDNXk+ihvSPZmS9a eakWqH8QpGjRqwhmmUfDMf5Zou8X7pr6K8CmpMoasrmiOJS0NjxBc0ncnraPrHyYCw4u bZLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717415834; x=1718020634; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pTQ5/ccHx7SVwnM9aooRlNY0TuvRMcHwyDigLDl8J9M=; b=D0ABoj9QJi8HmAVRz2/P02FcrnMzVKCC0m2vOF+Qril5gEC0XNufppsTborQglYo88 OsoGJkvufDQtyQtGeRtn9tfOhjanhtGCE8bRoa70bpg9peD7Y4EfxVNyXahqg1PDmaQH s7eu4HNuh72qbaAYRlbdzURPlFPhJ148z0ZYF2DVkPXv0mZsytDUfd4xhqLy4wGz4Y1Q H9A6zOFy1LZk7Tx6t/DfiRoJc4+olfH7h3akL+ETCUbIJenDOjh2s57JohAfwvSJDkEz DaOH94VaCEm1aRVnXU9e8zfAI7pD5Wree0ukfBr9mRZZF3n1agq7PgoVErlRJqpdlc4g dwLg== X-Gm-Message-State: AOJu0YzvdLVynRpGgH0ehAaY/fUs1FZz4O5Oi0Nzn+Hfct2ia49ORHIV CHdUASFcDzQnbNV2DSL/qZX9/eWXsF11+GFouWm9ucqLgKrSLyE73pXdwA== X-Google-Smtp-Source: AGHT+IGo2Az4NNkqVoGWGu7aGUELY6P+cOisOBWgvfjwssbVK6OpmQVtYBMvd12CjhFw+uJ6GiMBQg== X-Received: by 2002:a05:6a20:8401:b0:1a9:d9bb:acdc with SMTP id adf61e73a8af0-1b26f16425cmr10102598637.28.1717415834408; Mon, 03 Jun 2024 04:57:14 -0700 (PDT) Received: from rigel.home.arpa (14-203-42-154.tpgi.com.au. [14.203.42.154]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-702425e1a71sm5328492b3a.88.2024.06.03.04.57.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jun 2024 04:57:14 -0700 (PDT) From: Kent Gibson To: linux-gpio@vger.kernel.org, brgl@bgdev.pl Cc: Kent Gibson Subject: [libgpiod][PATCH v2 4/8] tools: tests: use read -r to avoid mangling backslashes Date: Mon, 3 Jun 2024 19:56:24 +0800 Message-Id: <20240603115628.102616-5-warthog618@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240603115628.102616-1-warthog618@gmail.com> References: <20240603115628.102616-1-warthog618@gmail.com> Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Fix shellcheck SC2162[1] - read without -r will mangle backslashes. [1] https://www.shellcheck.net/wiki/SC2162 Signed-off-by: Kent Gibson --- tools/gpio-tools-test.bash | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash index b065296..efe558b 100755 --- a/tools/gpio-tools-test.bash +++ b/tools/gpio-tools-test.bash @@ -188,7 +188,7 @@ dut_run() { shift coproc timeout 10s "$SOURCE_DIR/$cmd" "$@" 2>&1 DUT_PID=$COPROC_PID - read -t1 -n1 -u ${COPROC[0]} DUT_FIRST_CHAR + read -r -t1 -n1 -u "${COPROC[0]}" DUT_FIRST_CHAR } dut_run_redirect() { @@ -211,7 +211,7 @@ dut_read_redirect() { dut_read() { local LINE lines=() - while read -t 0.2 -u ${COPROC[0]} LINE + while read -r -t 0.2 -u "${COPROC[0]}" LINE do if [ -n "$DUT_FIRST_CHAR" ] then @@ -234,7 +234,7 @@ dut_flush() { unset DUT_FIRST_CHAR while read -t 0 -u "${COPROC[0]}" _JUNK do - read -t 0.1 -u "${COPROC[0]}" _JUNK || true + read -r -t 0.1 -u "${COPROC[0]}" _JUNK || true done } @@ -242,7 +242,7 @@ dut_flush() { dut_regex_match() { PATTERN=$1 - read -t 0.2 -u ${COPROC[0]} LINE || (echo Timeout && false) + read -r -t 0.2 -u "${COPROC[0]}" LINE || (echo Timeout && false) if [ -n "$DUT_FIRST_CHAR" ] then LINE=${DUT_FIRST_CHAR}${LINE} From patchwork Mon Jun 3 11:56:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 801315 Received: from mail-oa1-f53.google.com (mail-oa1-f53.google.com [209.85.160.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 791C386ADC for ; Mon, 3 Jun 2024 11:57:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415846; cv=none; b=fWpB99qJTZMBWnSAGqqZI9N+uB/rRNWGDHoTj51IxKvOmXbIOVrE82t6gB/KNYWFEG1LZ8rBHOOCJnTvS8N9k6pnil26U8FeltCFSgLtyjeE91IQ3xWgYwk0kKPFxfxkF92MPiHToHazAY/l/QYQ1ctCBkfyS7RskGUQkL8rGJM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415846; c=relaxed/simple; bh=UQ47/oEz5snaGZ6x117kHx/W6Z22WUlr4PGmojz5kCs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=uIr7T7McrLmEAe/TyzR86EIxmqy8MCF003kQsXlhEyjOkJCf1dXmcZ9le9NeSJOQASiCRS9G+BLEbeGm5WmznfMF0CDLFU63wBCpNe7VpelKP9GKP0Mr3iXHzQcaLFMe/+fzEGn3xNJNHWx5AKAC+b6HRUAUsDySuvxEZmDnVA0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bTuZk+F7; arc=none smtp.client-ip=209.85.160.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bTuZk+F7" Received: by mail-oa1-f53.google.com with SMTP id 586e51a60fabf-24cbb884377so2515417fac.0 for ; Mon, 03 Jun 2024 04:57:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717415844; x=1718020644; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=luVhp1IpvGh4EPP60T8G9tjq8Hsom5vq9Pa/aRjrEPg=; b=bTuZk+F7xZkUYjGSlP4xMddyeli+yBo/7lEvP6G8Z17v/cmgb1BW+IdN8tsQBsGtBI PKwWtgU34psgmbCcluMKKF0bJsc0HqoVR4KumYM6djLN3P9qpPP53i6VfyD7hRNu1Pdi +caiLxwasm2B309365UuVBDuRI25iRR0sOROp3753eQvjfOrgpgTmMyfgf3sqCrPfVuT ZUFYIepN6ubh+ycZvCHqEO5rOo9sjg/WcP0wEl2kLfqN/BWE4Mq5PoHdqURSPnGgrb7o PcYrGUw77mmyAYcdWV4G2X6rjBingh4YK3KaGidtTX+MDeXdGPSAjF31y+jyePXFfW2S lNGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717415844; x=1718020644; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=luVhp1IpvGh4EPP60T8G9tjq8Hsom5vq9Pa/aRjrEPg=; b=rGAu0JrtuQdTEtNTj8cwLotb4KCPAaNk+AdtrEvKhBeWmYUiZuwPsXupmNcXaXOSu0 wE5lVM65vG5X1h2kfQDznf4ysq5SQOBOOFgOXLoKHPGHCRUqGOPMgYOOHfHhyoDvhsbJ DtIHsmiK4h4fJz0RDVTS3ChEiAcTGAA2W2lyWtkMD8U7YAIyxJVDeyms7q4jENkbp3xg Vv/jDNzG0vR9mNayo5pY7tXUB/lCyBGzvgbiiH9k8Ycyd0lC9R9544AwHH0VFlIJ1k2Z CeX4mYY6Hh4QpmXn0eL8kJVesJbZlJy/yjc/d0Azpwl7HgGjfetrvFraYqY2yLgcDeuh ZSzA== X-Gm-Message-State: AOJu0YxUjneSP+I2y5trowPcQyC37z4xYAIve656m9QCAyLMrI7NeDYl 2zhM05SdGur5LMMBv45iIeAEZbXdJRr7wNs/0yt9lANsvETaAxJqpc6pEw== X-Google-Smtp-Source: AGHT+IE1/vgB/GISCHIlY8FpDY2pkgw8FvkjzLa15UvrtSSVRD6HnGKRP5XTvyXGBdmRl9+ntRxB9w== X-Received: by 2002:a05:6871:e010:b0:24c:b4da:725d with SMTP id 586e51a60fabf-2508bf2f97dmr9103809fac.33.1717415844247; Mon, 03 Jun 2024 04:57:24 -0700 (PDT) Received: from rigel.home.arpa (14-203-42-154.tpgi.com.au. [14.203.42.154]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-702425e1a71sm5328492b3a.88.2024.06.03.04.57.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jun 2024 04:57:24 -0700 (PDT) From: Kent Gibson To: linux-gpio@vger.kernel.org, brgl@bgdev.pl Cc: Kent Gibson Subject: [libgpiod][PATCH v2 5/8] tools: tests: don't use variables in printf format string Date: Mon, 3 Jun 2024 19:56:25 +0800 Message-Id: <20240603115628.102616-6-warthog618@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240603115628.102616-1-warthog618@gmail.com> References: <20240603115628.102616-1-warthog618@gmail.com> Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Fix shellcheck SC2059[1] - don't use variables in the printf format string. [1] https://www.shellcheck.net/wiki/SC2059 Signed-off-by: Kent Gibson --- tools/gpio-tools-test.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash index efe558b..d9930f1 100755 --- a/tools/gpio-tools-test.bash +++ b/tools/gpio-tools-test.bash @@ -3048,7 +3048,7 @@ die() { oneTimeSetUp() { test "$SHUNIT_VERSION" = "$MIN_SHUNIT_VERSION" && return 0 local FIRST - FIRST=$(printf "$SHUNIT_VERSION\n$MIN_SHUNIT_VERSION\n" | sort -Vr | head -1) + FIRST=$(printf "%s\n%s\n" "$SHUNIT_VERSION" "$MIN_SHUNIT_VERSION" | sort -Vr | head -1) test "$FIRST" = "$MIN_SHUNIT_VERSION" && \ die "minimum shunit version required is $MIN_SHUNIT_VERSION (current version is $SHUNIT_VERSION" } @@ -3058,7 +3058,7 @@ check_kernel() { local CURRENT CURRENT=$(uname -r) - SORTED=$(printf "$REQUIRED\n$CURRENT" | sort -V | head -n 1) + SORTED=$(printf "%s\n%s" "$REQUIRED" "$CURRENT" | sort -V | head -n 1) if [ "$SORTED" != "$REQUIRED" ] then From patchwork Mon Jun 3 11:56:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 801785 Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 72ADE86ADC for ; Mon, 3 Jun 2024 11:57:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415857; cv=none; b=h+VllK6t3p/qadYMtNQ8p/Tr3xOfX/nnAJ6cCZ81UUMPmksAuq67tU4cwuv0r/lA0DKC3V/T2tb/JHBEvpjykfg6qbCDrEKZoreb2GdtjxhhKgMcr+M4dVico9Q7VJtVBsSso1LmLldb0IypmSjN6zTucVHeauQkVAvWBUX9Vd8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415857; c=relaxed/simple; bh=9q1v1PgyHbF3kiLZDl8QU/McNErYCrE2oph+FlYx9xo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DvwP3W1KJ5OkzoBHTYG7u6xUlNJANzegyzb3ktOGZcgfb/EgU5SlKoi/bmPvZ1kK3tVD75GiXVFfbqB6C28FaFyxfuRCc134PPQzg+WuQOpnFwsKWZIfmB/HV3yURd4BUNA8yLuM8QJbZ5b7fZnYOqUlbUOWZUpQUet1RidphnQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Yvkr4wVY; arc=none smtp.client-ip=209.85.215.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Yvkr4wVY" Received: by mail-pg1-f180.google.com with SMTP id 41be03b00d2f7-6c4f3e0e3d2so2144525a12.1 for ; Mon, 03 Jun 2024 04:57:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717415854; x=1718020654; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fYDobpXsuWyeB1dEUCH/FxgQqYH4TEmXvv8I/1NiRs8=; b=Yvkr4wVY/tKHfNkNObnZlKYHdlFq6OYCD0iLrxw4fm37g8AJ1X4qKkhcJUqVgOciFv kpVNVDlXc70D1a+XCXL/ETU4cpDNxg5jF4TMs7r4K9EEqvoGvM94viJK9PKNKylManFe iwizTbzglsxziqLWUqmk2FGSEYbk99U63dnP6z8jvkAQ3vzIclckEsK4lYD36ys8wliQ 63QrPRbu31+m7s0J3cZKIlokLi+x/VqqcD63wdk9AT3GwhHVcZmQw4Mp3cK+gBhQl5ux etXhS9TrXrb1UIRjIM9YjAq6/VXuG7IkQaf6DWylqznaWAuWqE8w8tKYekL0b76yjokJ P25w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717415854; x=1718020654; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fYDobpXsuWyeB1dEUCH/FxgQqYH4TEmXvv8I/1NiRs8=; b=Rypdy/vit3xBdgHFiOG9NswcogmJiP4B5t0vUfBcSBsH7B2VBHB35Dyxa5UL5A27MZ CHqoXEf3sD3f9n0M997egH8kG644VCR8yf4UIqc5U2f1nZ9vULQkYArakSHOraw/+mbQ JNZMvQUYFD9Su/bg5Ow1IErJEfbKjvoZGTt6tVrpg9zdoqybwis4A0tuFjSd6v6su51F IbkZYPdt1yMK/jt12K6bnSYCK4wFEk+m7xjhxNiO9/YJRlj5abat/4dVZ+uRpjS8ilou tD4pIIXHgEQsH0DHNMEgtDraZUNdkR1UYHtGbeJwB2r6w3mIRzpgeDpmL/o9u0EBdHm+ nA2Q== X-Gm-Message-State: AOJu0YwGgS2WIBifuomaUJ+Fx4TIlP+ORIxQnEauOEXLJ3hQeGY0zFe8 c1bsDoGtxktJdvkRBEQY6dC1PK1xrsEo4av/uF2e0q/GiYzYsrfg0trEZw== X-Google-Smtp-Source: AGHT+IE0s76p3+rI311pSa7iZDssEnIem8MXlPI7NNdKxkmK4Iv0EGHzwA44p34Am09DRYN0JCVoJg== X-Received: by 2002:a05:6a21:9202:b0:1aa:6167:b6d6 with SMTP id adf61e73a8af0-1b26f245b94mr10738196637.42.1717415854580; Mon, 03 Jun 2024 04:57:34 -0700 (PDT) Received: from rigel.home.arpa (14-203-42-154.tpgi.com.au. [14.203.42.154]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-702425e1a71sm5328492b3a.88.2024.06.03.04.57.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jun 2024 04:57:34 -0700 (PDT) From: Kent Gibson To: linux-gpio@vger.kernel.org, brgl@bgdev.pl Cc: Kent Gibson Subject: [libgpiod][PATCH v2 6/8] tools: tests: check exit code directly Date: Mon, 3 Jun 2024 19:56:26 +0800 Message-Id: <20240603115628.102616-7-warthog618@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240603115628.102616-1-warthog618@gmail.com> References: <20240603115628.102616-1-warthog618@gmail.com> Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Fix shellcheck SC2181[1] - check exit code directly. [1] https://www.shellcheck.net/wiki/SC2181 Signed-off-by: Kent Gibson --- tools/gpio-tools-test.bash | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash index d9930f1..83b05ec 100755 --- a/tools/gpio-tools-test.bash +++ b/tools/gpio-tools-test.bash @@ -3069,8 +3069,7 @@ check_kernel() { check_prog() { local PROG=$1 - which "$PROG" > /dev/null - if [ "$?" -ne "0" ] + if ! which "$PROG" > /dev/null then die "$PROG not found - needed to run the tests" fi From patchwork Mon Jun 3 11:56:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 801314 Received: from mail-oa1-f47.google.com (mail-oa1-f47.google.com [209.85.160.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C037C86ADC for ; Mon, 3 Jun 2024 11:57:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415871; cv=none; b=VWTu3tWDGncFuwIUnoqkirVeK5cLdy6HlIZGib6DHywcpMi42s8mM9doRGUfheQOdlXyCO6LUBTJnD4vd7Lw6Lo8dN0q2/5IjPU5D9EvJ+P69twkr4TcIDhsyXsG1k3vssV9uOclN8OYgUeKc/cMHsTTTDwBCXKX4Y2OePG2izA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415871; c=relaxed/simple; bh=By0sskLtsJR2SmPLvqK3yAISa8I2U28qqOzJtRbUzjs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=IRFwmwdkmwemE5kSAnhDn3f0AAK8dBrcX/KaZHS6Q70SB+QNFCf0+SGhpgUGblSf2hqJwBOT+DcN09n1c6KlborrEuFHglX8vZtw2EIVpZ+g336ZFl7D5T9jIsirWp5qPx5dKQ/XsURmo6fnyFpC3Tc3tovve163GXWW9nvfusA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=C8GZ/S6E; arc=none smtp.client-ip=209.85.160.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="C8GZ/S6E" Received: by mail-oa1-f47.google.com with SMTP id 586e51a60fabf-250928a8580so1313051fac.3 for ; Mon, 03 Jun 2024 04:57:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717415869; x=1718020669; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kTxn6+22qsqvdTNGin/rCQxGWMo5hWHfE9VLPjXTvE4=; b=C8GZ/S6Eh/cidwwVtnJd97j+blxEL8/0zKLZc+8Jwi97tGoeLXybouM+kihsGDyObw tS6oK8MTE6pv7kJ/VkxudcUSEvvMLCkK5fvSyNwRrcceS/UaW/JALmXn7NaoqP8qcsYm v+2RTdS6rTa/55u54DxBZYnziOh3910aQulz1w28s1GZtTqKtkYiNeDLwsFR32W61H1G I9wR7bHxmEMSfDuSfd00Rf+tSCIIhv3zIlR1/8TyAATvjxESDPeyegZBHh6YcqDerrXf ymgc2vP5lYtQ58ZRtH0lxLfePdtnLqq8bZ+vuhf+bX65V6Wxt4gV1fVM9YZZzL2ZstGj l8CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717415869; x=1718020669; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kTxn6+22qsqvdTNGin/rCQxGWMo5hWHfE9VLPjXTvE4=; b=Q1qIMDDtF0MAmJusnAyTnR/dV/eDR3x3YdJWa0oH5U1X/GNlc63Gw7wOR/2GpN11hs 9vxTPZfai45P8C5YOKCS+l7dlfmWDxWrfkZQzpnE5hCS0Uq1CBAHv/74DgsPKPTre4F8 uCfl1QscDJ5t568e+xBwo9h2cim9LntREGlll+PrxF1YCKcdKWDU+i8m9n9N2PoYaZSo trA2juOsd6vFKczzdMrih4I807wfHA1mPcdn76uYyE7uoOGwLH3yRybaTu+K6Ho4xLvk pNqZrujfhcH6G7XWNHf+ByEUsxGnuGaQOSEEvbDxAHIFjzDii1jQv3ceG80Dsa+6ZWCt LtpA== X-Gm-Message-State: AOJu0Yz0gqjbnnh9LiKb8TNsds8bvlJXBWhMEIGz3S+Xfrz25LrmQeZZ RB8iXv33GYXQNvKGMifhHtDzRTz1ECOWsFGyXS/RDanbPk9whtWapjL4CA== X-Google-Smtp-Source: AGHT+IE880TReRtYKhQzY6eDBEN4vzPrrirVnr3PlgLN9tsRmeATkN8NogoNfQ2mwNpCBeR580XWlg== X-Received: by 2002:a05:6870:5388:b0:250:7601:fea6 with SMTP id 586e51a60fabf-2508bc195a0mr9804098fac.42.1717415868757; Mon, 03 Jun 2024 04:57:48 -0700 (PDT) Received: from rigel.home.arpa (14-203-42-154.tpgi.com.au. [14.203.42.154]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-702425e1a71sm5328492b3a.88.2024.06.03.04.57.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jun 2024 04:57:48 -0700 (PDT) From: Kent Gibson To: linux-gpio@vger.kernel.org, brgl@bgdev.pl Cc: Kent Gibson Subject: [libgpiod][PATCH v2 7/8] tools: tests: shellcheck don't follow sourced file Date: Mon, 3 Jun 2024 19:56:27 +0800 Message-Id: <20240603115628.102616-8-warthog618@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240603115628.102616-1-warthog618@gmail.com> References: <20240603115628.102616-1-warthog618@gmail.com> Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Fix shellcheck SC1091 - not following. Use a directive to prevent shellcheck complaining about sourcing shunit2, which we don't care to check. [1] https://www.shellcheck.net/wiki/SC1091 Signed-off-by: Kent Gibson --- tools/gpio-tools-test.bash | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash index 83b05ec..4551dc2 100755 --- a/tools/gpio-tools-test.bash +++ b/tools/gpio-tools-test.bash @@ -3087,4 +3087,5 @@ modprobe gpio-sim || die "unable to load the gpio-sim module" mountpoint /sys/kernel/config/ > /dev/null 2> /dev/null || \ die "configfs not mounted at /sys/kernel/config/" +# shellcheck source=/dev/null . shunit2 From patchwork Mon Jun 3 11:56:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 801784 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 845C9126F0A for ; Mon, 3 Jun 2024 11:58:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415883; cv=none; b=cr6FDUCv58hW8HakbLNgFN1R3tZ/YbJ3Eermtwczod5Jupom/Nmpp3aE5ecN0fGyR30PXkTHFXAnhQzxhuV9JxybC2AlEB/OAs3YQ8f3N19vdaFll0l+xZM7+uCnccACpn/dCsIMHNmtH2s85QvpnTY3QZcq0lSwIIX5C7KFRYQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717415883; c=relaxed/simple; bh=NzrTtKyBXKtzySJc762vRXy4gJgKqUN/u0q3DAIK88g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=UDmCQvOHBzAisifFtKzAYYS7P6ZdR4TbGGT/UZCnoYp+7fgFUnjx6KzBrI5YhsrIJGYA2kZ3S0K+GK+yU3JWXparj4J5ZWOCLx1o1axNA/9Uux8DqcfmQyHNVotg/9LIivCqfrUsPdIeeZWcm9+X4xSR8rXxt8/BsM2AO3LZ0LY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mknRY3Xp; arc=none smtp.client-ip=209.85.210.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mknRY3Xp" Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-702621d8725so1383382b3a.0 for ; Mon, 03 Jun 2024 04:58:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717415880; x=1718020680; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lru2AavtXgmVHSZ6sSq7zp2tF03fyWw2DBZ30dTwysk=; b=mknRY3Xpvhq7yYkTfYrpqOy2MDxonRSwlHMDrvuijTwiXylGaL4iRgm566S/AruVRQ MkWAjgHODrwzbFcOi8s0IgqGaO5dVbx1asc9QI/FdqpJAivnfVyo9i+mCYfZYnTngTE6 GImQayc6Rmdgi+xYp6TIbbD4Ez4L/tamr7y3yYRSiBEkT9i8zGrM2pFfJwdXB63PWoNT dJy49LsN1g70y8Dr7vuIkpGcVOmn9K/+j7cHXTaYfApuQe7ztkeQjBn51T39jA2+acRl ju45LERIKZyi9Te6S0JtKSTeSoCWVaIQTyjSSmvv9M+KTvNeev/nXjfTFZHjyw6GCrdw KpHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717415880; x=1718020680; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lru2AavtXgmVHSZ6sSq7zp2tF03fyWw2DBZ30dTwysk=; b=q7icsKQmrror1lBKwN0WfkdMCNUUBlQHCTXH7y0KjgU3z17FiRlMw/Gl5lE7zxZMvn /6Emnx8OMsfahZxeDwR449atAC4CJpSxmI6P/R53+jwZ/n8leYZjZxJRAD34jThPQdUo 5cgY1jCNpsJ2un1pXzeVft3jTU/KwICXEh+xj8w3Lm9B3fwNwtvwSdSloEIsa0MIidNa qAxbNJzwDuGs9q9ut0G554G0wl8j1wb7RVdi10tGiQ9G5lhpYp+kYVAML4fb1ytBY5fH a+1g0sv2VZfdrJAbbSL6xmKA4g8oZjS++RYB7qYVe180x3lnOxUn9ITT8lpFwT64QNvt SXrg== X-Gm-Message-State: AOJu0YxiF0Q0+gtv9eFx6HqGzBz735sgO0UCbYUGpSmwnIbalBqbhDv/ nFPM9so/upQKzTVx+/vHopXE3kuc0uxXDV116gf/RFDls8rLVgwBvAMUWQ== X-Google-Smtp-Source: AGHT+IEBUuK0h8OivAIKWvxPvvWbUE/8sRe7ndLI2IYYllhGdrAYk96a/Fn5uU8iVmR/PPZWsg8Qwg== X-Received: by 2002:a05:6a00:10cd:b0:702:4139:755d with SMTP id d2e1a72fcca58-702477e4509mr9540605b3a.9.1717415879218; Mon, 03 Jun 2024 04:57:59 -0700 (PDT) Received: from rigel.home.arpa (14-203-42-154.tpgi.com.au. [14.203.42.154]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-702425e1a71sm5328492b3a.88.2024.06.03.04.57.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jun 2024 04:57:58 -0700 (PDT) From: Kent Gibson To: linux-gpio@vger.kernel.org, brgl@bgdev.pl Cc: Kent Gibson Subject: [libgpiod][PATCH v2 8/8] tools: tests: avoid splitting and globbing Date: Mon, 3 Jun 2024 19:56:28 +0800 Message-Id: <20240603115628.102616-9-warthog618@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240603115628.102616-1-warthog618@gmail.com> References: <20240603115628.102616-1-warthog618@gmail.com> Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Fix shellcheck SC2046[1], SC2068[2], SC2068[3] and SC2206[4], all of which are related to avoiding word splitting and globbing. [1] https://www.shellcheck.net/wiki/SC2046 [2] https://www.shellcheck.net/wiki/SC2068 [3] https://www.shellcheck.net/wiki/SC2086 [4] https://www.shellcheck.net/wiki/SC2206 Signed-off-by: Kent Gibson --- tools/gpio-tools-test.bash | 398 ++++++++++++++++++------------------- 1 file changed, 198 insertions(+), 200 deletions(-) diff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash index 4551dc2..3b93388 100755 --- a/tools/gpio-tools-test.bash +++ b/tools/gpio-tools-test.bash @@ -14,7 +14,7 @@ DUT_OUTPUT=gpio-tools-test-output # once it exits as the COPROC_PID will be cleared. DUT_PID="" -SOURCE_DIR="$(dirname ${BASH_SOURCE[0]})" +SOURCE_DIR=$(dirname "${BASH_SOURCE[0]}") # mappings from local name to system chip name, path, dev name declare -A GPIOSIM_CHIP_NAME @@ -70,7 +70,7 @@ gpiosim_chip() { local DEVPATH=$GPIOSIM_CONFIGFS/$NAME local BANKPATH=$DEVPATH/bank0 - mkdir -p $BANKPATH + mkdir -p "$BANKPATH" for ARG in "$@" do @@ -80,7 +80,7 @@ gpiosim_chip() { if [ "$KEY" = "num_lines" ] then - echo $VAL > $BANKPATH/num_lines + echo "$VAL" > "$BANKPATH/num_lines" elif [ "$KEY" = "line_name" ] then local OFFSET LINENAME @@ -88,12 +88,12 @@ gpiosim_chip() { LINENAME=$(echo "$VAL" | cut -d":" -f2) local LINEPATH=$BANKPATH/line$OFFSET - mkdir -p $LINEPATH - echo $LINENAME > $LINEPATH/name + mkdir -p "$LINEPATH" + echo "$LINENAME" > "$LINEPATH/name" fi done - echo 1 > $DEVPATH/live + echo 1 > "$DEVPATH/live" local CHIP_NAME CHIP_NAME=$(<"$BANKPATH/chip_name") @@ -104,12 +104,12 @@ gpiosim_chip() { gpiosim_chip_number() { local NAME=${GPIOSIM_CHIP_NAME[$1]} - echo ${NAME#"gpiochip"} + echo "${NAME#gpiochip}" } gpiosim_chip_symlink() { GPIOSIM_CHIP_LINK="$2/${GPIOSIM_APP_NAME}-$$-lnk" - ln -s ${GPIOSIM_CHIP_PATH[$1]} "$GPIOSIM_CHIP_LINK" + ln -s "${GPIOSIM_CHIP_PATH[$1]}" "$GPIOSIM_CHIP_LINK" } gpiosim_chip_symlink_cleanup() { @@ -126,7 +126,7 @@ gpiosim_set_pull() { local DEVNAME=${GPIOSIM_DEV_NAME[$1]} local CHIPNAME=${GPIOSIM_CHIP_NAME[$1]} - echo $PULL > $GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/pull + echo "$PULL" > "$GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/pull" } gpiosim_check_value() { @@ -135,7 +135,7 @@ gpiosim_check_value() { local DEVNAME=${GPIOSIM_DEV_NAME[$1]} local CHIPNAME=${GPIOSIM_CHIP_NAME[$1]} - VAL=$(<$GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/value) + VAL=$(<"$GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/value") [ "$VAL" = "$EXPECTED" ] } @@ -147,20 +147,20 @@ gpiosim_wait_value() { local PORT=$GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/value for _i in {1..30}; do - [ "$(<$PORT)" = "$EXPECTED" ] && return + [ "$(<"$PORT")" = "$EXPECTED" ] && return sleep 0.01 done return 1 } gpiosim_cleanup() { - for CHIP in ${!GPIOSIM_CHIP_NAME[@]} + for CHIP in "${!GPIOSIM_CHIP_NAME[@]}" do local NAME=${GPIOSIM_APP_NAME}-$$-$CHIP local DEVPATH=$GPIOSIM_CONFIGFS/$NAME - echo 0 > $DEVPATH/live + echo 0 > "$DEVPATH/live" find "$DEVPATH" -type d -name hog -exec rmdir '{}' '+' find "$DEVPATH" -type d -name "line*" -exec rmdir '{}' '+' find "$DEVPATH" -type d -name "bank*" -exec rmdir '{}' '+' @@ -202,9 +202,9 @@ dut_run_redirect() { } dut_read_redirect() { - output=$(<$SHUNIT_TMPDIR/$DUT_OUTPUT) + output=$(<"$SHUNIT_TMPDIR/$DUT_OUTPUT") local ORIG_IFS="$IFS" - IFS=$'\n' lines=($output) + IFS=$'\n' mapfile -t lines <<< "$output" IFS="$ORIG_IFS" } @@ -220,11 +220,11 @@ dut_read() { fi lines+=("$LINE") done - output="${lines[@]}" + output="${lines[*]}" } dut_readable() { - read -t 0 -u ${COPROC[0]} LINE + read -t 0 -u "${COPROC[0]}" LINE } dut_flush() { @@ -253,17 +253,15 @@ dut_regex_match() { } dut_write() { - echo "$@" >&${COPROC[1]} + echo "$@" >&"${COPROC[1]}" } dut_kill() { - SIGNUM=$1 - - kill $SIGNUM $DUT_PID + kill "$@" "$DUT_PID" } dut_wait() { - wait $DUT_PID + wait "$DUT_PID" export status=$? unset DUT_PID } @@ -271,10 +269,10 @@ dut_wait() { dut_cleanup() { if [ -n "$DUT_PID" ] then - kill -SIGTERM $DUT_PID 2> /dev/null - wait $DUT_PID || false + kill -SIGTERM "$DUT_PID" 2> /dev/null + wait "$DUT_PID" || false fi - rm -f $SHUNIT_TMPDIR/$DUT_OUTPUT + rm -f "$SHUNIT_TMPDIR/$DUT_OUTPUT" } tearDown() { @@ -283,7 +281,7 @@ tearDown() { } request_release_line() { - $SOURCE_DIR/gpioget -c "$@" >/dev/null + "$SOURCE_DIR/gpioget" -c "$@" >/dev/null } # @@ -332,21 +330,21 @@ test_gpiodetect_a_chip() { local sim2dev=${GPIOSIM_DEV_NAME[sim2]} # by name - run_tool gpiodetect $sim0 + run_tool gpiodetect "$sim0" output_regex_match "$sim0 \[${sim0dev}[-:]node0\] \(4 lines\)" num_lines_is 1 status_is 0 # by path - run_tool gpiodetect ${GPIOSIM_CHIP_PATH[sim1]} + run_tool gpiodetect "${GPIOSIM_CHIP_PATH[sim1]}" output_regex_match "$sim1 \[${sim1dev}[-:]node0\] \(8 lines\)" num_lines_is 1 status_is 0 # by number - run_tool gpiodetect $(gpiosim_chip_number sim2) + run_tool gpiodetect "$(gpiosim_chip_number sim2)" output_regex_match "$sim2 \[${sim2dev}[-:]node0\] \(16 lines\)" num_lines_is 1 @@ -354,7 +352,7 @@ test_gpiodetect_a_chip() { # by symlink gpiosim_chip_symlink sim2 . - run_tool gpiodetect $GPIOSIM_CHIP_LINK + run_tool gpiodetect "$GPIOSIM_CHIP_LINK" output_regex_match "$sim2 \[${sim2dev}[-:]node0\] \(16 lines\)" num_lines_is 1 @@ -373,7 +371,7 @@ test_gpiodetect_multiple_chips() { local sim1dev=${GPIOSIM_DEV_NAME[sim1]} local sim2dev=${GPIOSIM_DEV_NAME[sim2]} - run_tool gpiodetect $sim0 $sim1 $sim2 + run_tool gpiodetect "$sim0" "$sim1" "$sim2" output_regex_match "$sim0 \[${sim0dev}[-:]node0\] \(4 lines\)" output_regex_match "$sim1 \[${sim1dev}[-:]node0\] \(8 lines\)" @@ -441,7 +439,7 @@ test_gpioinfo_a_chip() { local sim1=${GPIOSIM_CHIP_NAME[sim1]} # by name - run_tool gpioinfo --chip $sim1 + run_tool gpioinfo --chip "$sim1" output_contains_line "$sim1 - 4 lines:" output_regex_match "\\s+line\\s+0:\\s+unnamed\\s+input" @@ -452,7 +450,7 @@ test_gpioinfo_a_chip() { status_is 0 # by path - run_tool gpioinfo --chip $sim1 + run_tool gpioinfo --chip "$sim1" output_contains_line "$sim1 - 4 lines:" output_regex_match "\\s+line\\s+0:\\s+unnamed\\s+input" @@ -463,7 +461,7 @@ test_gpioinfo_a_chip() { status_is 0 # by number - run_tool gpioinfo --chip $sim1 + run_tool gpioinfo --chip "$sim1" output_contains_line "$sim1 - 4 lines:" output_regex_match "\\s+line\\s+0:\\s+unnamed\\s+input" @@ -475,7 +473,7 @@ test_gpioinfo_a_chip() { # by symlink gpiosim_chip_symlink sim1 . - run_tool gpioinfo --chip $GPIOSIM_CHIP_LINK + run_tool gpioinfo --chip "$GPIOSIM_CHIP_LINK" output_contains_line "$sim1 - 4 lines:" output_regex_match "\\s+line\\s+0:\\s+unnamed\\s+input" @@ -494,7 +492,7 @@ test_gpioinfo_a_line() { local sim1=${GPIOSIM_CHIP_NAME[sim1]} # by offset - run_tool gpioinfo --chip $sim1 2 + run_tool gpioinfo --chip "$sim1" 2 output_regex_match "$sim1 2\\s+\"bar\"\\s+input" num_lines_is 1 @@ -508,14 +506,14 @@ test_gpioinfo_a_line() { status_is 0 # by chip and name - run_tool gpioinfo --chip $sim1 2 + run_tool gpioinfo --chip "$sim1" 2 output_regex_match "$sim1 2\\s+\"bar\"\\s+input" num_lines_is 1 status_is 0 # unquoted - run_tool gpioinfo --unquoted --chip $sim1 2 + run_tool gpioinfo --unquoted --chip "$sim1" 2 output_regex_match "$sim1 2\\s+bar\\s+input" num_lines_is 1 @@ -547,7 +545,7 @@ test_gpioinfo_multiple_lines() { local sim1=${GPIOSIM_CHIP_NAME[sim1]} # by offset - run_tool gpioinfo --chip $sim1 1 2 + run_tool gpioinfo --chip "$sim1" 1 2 output_regex_match "$sim1 1\\s+unnamed\\s+input" output_regex_match "$sim1 2\\s+\"baz\"\\s+input" @@ -563,7 +561,7 @@ test_gpioinfo_multiple_lines() { status_is 0 # by name and offset - run_tool gpioinfo --chip $sim0 bar 3 + run_tool gpioinfo --chip "$sim0" bar 3 output_regex_match "$sim0 5\\s+\"bar\"\\s+input" output_regex_match "$sim0 3\\s+unnamed\\s+input" @@ -652,7 +650,7 @@ test_gpioinfo_with_same_line_twice() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} # by offset - run_tool gpioinfo --chip $sim0 1 1 + run_tool gpioinfo --chip "$sim0" 1 1 output_regex_match "$sim0 1\\s+\"foo\"\\s+input" output_regex_match ".*lines '1' and '1' are the same line" @@ -668,7 +666,7 @@ test_gpioinfo_with_same_line_twice() { status_is 1 # by name and offset - run_tool gpioinfo --chip $sim0 foo 1 + run_tool gpioinfo --chip "$sim0" foo 1 output_regex_match "$sim0 1\\s+\"foo\"\\s+input" output_regex_match ".*lines 'foo' and '1' are the same line" @@ -703,7 +701,7 @@ test_gpioinfo_with_lines_strictly_by_name() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} # first by offset (to show offsets match first) - run_tool gpioinfo --chip $sim0 1 6 + run_tool gpioinfo --chip "$sim0" 1 6 output_regex_match "$sim0 1\\s+\"6\"\\s+input" output_regex_match "$sim0 6\\s+\"1\"\\s+input" @@ -711,7 +709,7 @@ test_gpioinfo_with_lines_strictly_by_name() { status_is 0 # then strictly by name - run_tool gpioinfo --by-name --chip $sim0 1 + run_tool gpioinfo --by-name --chip "$sim0" 1 output_regex_match "$sim0 6\\s+\"1\"\\s+input" num_lines_is 1 @@ -734,7 +732,7 @@ test_gpioinfo_with_nonexistent_line() { output_regex_match ".*cannot find line 'nonexistent-line'" status_is 1 - run_tool gpioinfo --chip ${GPIOSIM_CHIP_NAME[sim0]} nonexistent-line + run_tool gpioinfo --chip "${GPIOSIM_CHIP_NAME[sim0]}" nonexistent-line output_regex_match ".*cannot find line 'nonexistent-line'" status_is 1 @@ -745,7 +743,7 @@ test_gpioinfo_with_offset_out_of_range() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpioinfo --chip $sim0 0 1 2 3 4 5 + run_tool gpioinfo --chip "$sim0" 0 1 2 3 4 5 output_regex_match "$sim0 0\\s+unnamed\\s+input" output_regex_match "$sim0 1\\s+unnamed\\s+input" @@ -782,12 +780,12 @@ test_gpioget_by_offset() { gpiosim_set_pull sim0 1 pull-up - run_tool gpioget --chip ${GPIOSIM_CHIP_NAME[sim0]} 1 + run_tool gpioget --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1 output_is "\"1\"=active" status_is 0 - run_tool gpioget --unquoted --chip ${GPIOSIM_CHIP_NAME[sim0]} 1 + run_tool gpioget --unquoted --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1 output_is "1=active" status_is 0 @@ -799,7 +797,7 @@ test_gpioget_by_symlink() { gpiosim_set_pull sim0 1 pull-up - run_tool gpioget --chip $GPIOSIM_CHIP_LINK 1 + run_tool gpioget --chip "$GPIOSIM_CHIP_LINK" 1 output_is "\"1\"=active" status_is 0 @@ -811,12 +809,12 @@ test_gpioget_by_chip_and_name() { gpiosim_set_pull sim1 3 pull-up - run_tool gpioget --chip ${GPIOSIM_CHIP_NAME[sim1]} foo + run_tool gpioget --chip "${GPIOSIM_CHIP_NAME[sim1]}" foo output_is "\"foo\"=active" status_is 0 - run_tool gpioget --unquoted --chip ${GPIOSIM_CHIP_NAME[sim1]} foo + run_tool gpioget --unquoted --chip "${GPIOSIM_CHIP_NAME[sim1]}" foo output_is "foo=active" status_is 0 @@ -845,7 +843,7 @@ test_gpioget_multiple_lines() { gpiosim_set_pull sim0 5 pull-up gpiosim_set_pull sim0 7 pull-up - run_tool gpioget --unquoted --chip ${GPIOSIM_CHIP_NAME[sim0]} 0 1 2 3 4 5 6 7 + run_tool gpioget --unquoted --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0 1 2 3 4 5 6 7 output_is \ "0=inactive 1=inactive 2=active 3=active 4=inactive 5=active 6=inactive 7=active" @@ -861,7 +859,7 @@ test_gpioget_multiple_lines_by_name_and_offset() { gpiosim_set_pull sim0 4 pull-up gpiosim_set_pull sim0 6 pull-up - run_tool gpioget --chip $sim0 0 foo 4 bar + run_tool gpioget --chip "$sim0" 0 foo 4 bar output_is "\"0\"=inactive \"foo\"=active \"4\"=active \"bar\"=active" status_is 0 @@ -890,7 +888,7 @@ test_gpioget_with_numeric_values() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpioget --numeric --chip $sim0 0 1 2 3 4 5 6 7 + run_tool gpioget --numeric --chip "$sim0" 0 1 2 3 4 5 6 7 output_is "0 0 1 1 0 1 0 1" status_is 0 @@ -906,7 +904,7 @@ test_gpioget_with_active_low() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpioget --active-low --unquoted --chip $sim0 0 1 2 3 4 5 6 7 + run_tool gpioget --active-low --unquoted --chip "$sim0" 0 1 2 3 4 5 6 7 output_is \ "0=active 1=active 2=inactive 3=inactive 4=active 5=inactive 6=active 7=inactive" @@ -937,7 +935,7 @@ test_gpioget_with_pull_up() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpioget --bias=pull-up --unquoted --chip $sim0 0 1 2 3 4 5 6 7 + run_tool gpioget --bias=pull-up --unquoted --chip "$sim0" 0 1 2 3 4 5 6 7 output_is \ "0=active 1=active 2=active 3=active 4=active 5=active 6=active 7=active" @@ -954,7 +952,7 @@ test_gpioget_with_pull_down() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpioget --bias=pull-down --unquoted --chip $sim0 0 1 2 3 4 5 6 7 + run_tool gpioget --bias=pull-down --unquoted --chip "$sim0" 0 1 2 3 4 5 6 7 output_is \ "0=inactive 1=inactive 2=inactive 3=inactive 4=inactive 5=inactive 6=inactive 7=inactive" @@ -1026,12 +1024,12 @@ test_gpioget_with_lines_by_offset() { gpiosim_set_pull sim0 1 pull-up gpiosim_set_pull sim0 6 pull-down - run_tool gpioget --chip ${GPIOSIM_CHIP_NAME[sim0]} 1 6 + run_tool gpioget --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1 6 output_is "\"1\"=active \"6\"=inactive" status_is 0 - run_tool gpioget --unquoted --chip ${GPIOSIM_CHIP_NAME[sim0]} 1 6 + run_tool gpioget --unquoted --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1 6 output_is "1=active 6=inactive" status_is 0 @@ -1045,12 +1043,12 @@ test_gpioget_with_lines_strictly_by_name() { gpiosim_set_pull sim0 1 pull-up gpiosim_set_pull sim0 6 pull-down - run_tool gpioget --by-name --chip ${GPIOSIM_CHIP_NAME[sim0]} 1 6 + run_tool gpioget --by-name --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1 6 output_is "\"1\"=inactive \"6\"=active" status_is 0 - run_tool gpioget --by-name --unquoted --chip ${GPIOSIM_CHIP_NAME[sim0]} 1 6 + run_tool gpioget --by-name --unquoted --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1 6 output_is "1=inactive 6=active" status_is 0 @@ -1066,7 +1064,7 @@ test_gpioget_with_no_arguments() { test_gpioget_with_chip_but_no_line_specified() { gpiosim_chip sim0 num_lines=8 - run_tool gpioget --chip ${GPIOSIM_CHIP_NAME[sim0]} + run_tool gpioget --chip "${GPIOSIM_CHIP_NAME[sim0]}" output_regex_match ".*at least one GPIO line must be specified" status_is 1 @@ -1076,7 +1074,7 @@ test_gpioget_with_offset_out_of_range() { gpiosim_chip sim0 num_lines=4 local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpioget --chip $sim0 0 1 2 3 4 5 + run_tool gpioget --chip "$sim0" 0 1 2 3 4 5 output_regex_match ".*offset 4 is out of range on chip '$sim0'" output_regex_match ".*offset 5 is out of range on chip '$sim0'" @@ -1095,7 +1093,7 @@ test_gpioget_with_same_line_twice() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} # by offset - run_tool gpioget --chip $sim0 0 0 + run_tool gpioget --chip "$sim0" 0 0 output_regex_match ".*lines '0' and '0' are the same line" status_is 1 @@ -1107,19 +1105,19 @@ test_gpioget_with_same_line_twice() { status_is 1 # by chip and name - run_tool gpioget --chip $sim0 foo foo + run_tool gpioget --chip "$sim0" foo foo output_regex_match ".*lines 'foo' and 'foo' are the same line" status_is 1 # by name and offset - run_tool gpioget --chip $sim0 foo 1 + run_tool gpioget --chip "$sim0" foo 1 output_regex_match ".*lines 'foo' and '1' are the same line" status_is 1 # by offset and name - run_tool gpioget --chip $sim0 1 foo + run_tool gpioget --chip "$sim0" 1 foo output_regex_match ".*lines '1' and 'foo' are the same line" status_is 1 @@ -1128,7 +1126,7 @@ test_gpioget_with_same_line_twice() { test_gpioget_with_invalid_bias() { gpiosim_chip sim0 num_lines=8 - run_tool gpioget --bias=bad --chip ${GPIOSIM_CHIP_NAME[sim0]} 0 1 + run_tool gpioget --bias=bad --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0 1 output_regex_match ".*invalid bias.*" status_is 1 @@ -1137,7 +1135,7 @@ test_gpioget_with_invalid_bias() { test_gpioget_with_invalid_hold_period() { gpiosim_chip sim0 num_lines=8 - run_tool gpioget --hold-period=bad --chip ${GPIOSIM_CHIP_NAME[sim0]} 0 + run_tool gpioget --hold-period=bad --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0 output_regex_match ".*invalid period.*" status_is 1 @@ -1158,7 +1156,7 @@ test_gpioset_by_name() { test_gpioset_by_offset() { gpiosim_chip sim0 num_lines=8 - dut_run gpioset --banner --chip ${GPIOSIM_CHIP_NAME[sim0]} 1=1 + dut_run gpioset --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1=1 gpiosim_check_value sim0 1 1 } @@ -1167,7 +1165,7 @@ test_gpioset_by_symlink() { gpiosim_chip sim0 num_lines=8 gpiosim_chip_symlink sim0 . - dut_run gpioset --banner --chip $GPIOSIM_CHIP_LINK 1=1 + dut_run gpioset --banner --chip "$GPIOSIM_CHIP_LINK" 1=1 gpiosim_check_value sim0 1 1 } @@ -1176,7 +1174,7 @@ test_gpioset_by_chip_and_name() { gpiosim_chip sim0 num_lines=8 line_name=1:foo gpiosim_chip sim1 num_lines=8 line_name=3:foo - dut_run gpioset --banner --chip ${GPIOSIM_CHIP_NAME[sim1]} foo=1 + dut_run gpioset --banner --chip "${GPIOSIM_CHIP_NAME[sim1]}" foo=1 gpiosim_check_value sim1 3 1 } @@ -1198,7 +1196,7 @@ test_gpioset_multiple_lines() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpioset --banner --chip $sim0 0=0 1=0 2=1 3=1 4=1 5=1 6=0 7=1 + dut_run gpioset --banner --chip "$sim0" 0=0 1=0 2=1 3=1 4=1 5=1 6=0 7=1 gpiosim_check_value sim0 0 0 gpiosim_check_value sim0 1 0 @@ -1213,7 +1211,7 @@ test_gpioset_multiple_lines() { test_gpioset_multiple_lines_by_name_and_offset() { gpiosim_chip sim0 num_lines=4 line_name=1:foo line_name=2:bar - dut_run gpioset --banner --chip ${GPIOSIM_CHIP_NAME[sim0]} 0=1 foo=1 bar=1 3=1 + dut_run gpioset --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0=1 foo=1 bar=1 3=1 gpiosim_check_value sim0 0 1 gpiosim_check_value sim0 1 1 @@ -1238,7 +1236,7 @@ test_gpioset_with_active_low() { gpiosim_chip sim0 num_lines=8 local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpioset --banner --active-low -c $sim0 \ + dut_run gpioset --banner --active-low -c "$sim0" \ 0=0 1=0 2=1 3=1 4=1 5=1 6=0 7=1 gpiosim_check_value sim0 0 1 @@ -1272,7 +1270,7 @@ test_gpioset_with_push_pull() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpioset --banner --drive=push-pull --chip $sim0 \ + dut_run gpioset --banner --drive=push-pull --chip "$sim0" \ 0=0 1=0 2=1 3=1 4=1 5=1 6=0 7=1 gpiosim_check_value sim0 0 0 @@ -1295,7 +1293,7 @@ test_gpioset_with_open_drain() { gpiosim_set_pull sim0 5 pull-up gpiosim_set_pull sim0 7 pull-up - dut_run gpioset --banner --drive=open-drain --chip $sim0 \ + dut_run gpioset --banner --drive=open-drain --chip "$sim0" \ 0=0 1=0 2=1 3=1 4=1 5=1 6=0 7=1 gpiosim_check_value sim0 0 0 @@ -1318,7 +1316,7 @@ test_gpioset_with_open_source() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpioset --banner --drive=open-source --chip $sim0 \ + dut_run gpioset --banner --drive=open-source --chip "$sim0" \ 0=0 1=0 2=1 3=0 4=1 5=1 6=0 7=1 gpiosim_check_value sim0 0 0 @@ -1337,7 +1335,7 @@ test_gpioset_with_pull_up() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} dut_run gpioset --banner --bias=pull-up --drive=open-drain \ - --chip $sim0 0=0 1=0 2=1 3=0 4=1 5=1 6=0 7=1 + --chip "$sim0" 0=0 1=0 2=1 3=0 4=1 5=1 6=0 7=1 gpiosim_check_value sim0 0 0 gpiosim_check_value sim0 1 0 @@ -1355,7 +1353,7 @@ test_gpioset_with_pull_down() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} dut_run gpioset --banner --bias=pull-down --drive=open-source \ - --chip $sim0 0=0 1=0 2=1 3=0 4=1 5=1 6=0 7=1 + --chip "$sim0" 0=0 1=0 2=1 3=0 4=1 5=1 6=0 7=1 gpiosim_check_value sim0 0 0 gpiosim_check_value sim0 1 0 @@ -1381,7 +1379,7 @@ test_gpioset_with_value_variants() { gpiosim_set_pull sim0 6 pull-up gpiosim_set_pull sim0 7 pull-down - dut_run gpioset --banner --chip $sim0 0=0 1=1 2=active \ + dut_run gpioset --banner --chip "$sim0" 0=0 1=1 2=active \ 3=inactive 4=on 5=off 6=false 7=true gpiosim_check_value sim0 0 0 @@ -1401,7 +1399,7 @@ test_gpioset_with_hold_period() { gpiosim_set_pull sim0 5 pull-up - dut_run gpioset --banner --hold-period=1200ms -t0 --chip $sim0 0=1 5=0 7=1 + dut_run gpioset --banner --hold-period=1200ms -t0 --chip "$sim0" 0=1 5=0 7=1 gpiosim_check_value sim0 0 1 gpiosim_check_value sim0 5 0 @@ -1417,7 +1415,7 @@ test_gpioset_interactive_exit() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpioset --interactive --chip $sim0 1=0 2=1 5=1 6=0 7=1 + dut_run gpioset --interactive --chip "$sim0" 1=0 2=1 5=1 6=0 7=1 gpiosim_check_value sim0 1 0 gpiosim_check_value sim0 2 1 @@ -1656,7 +1654,7 @@ test_gpioset_with_lines_by_offset() { gpiosim_set_pull sim0 1 pull-down gpiosim_set_pull sim0 6 pull-up - dut_run gpioset --banner --chip ${GPIOSIM_CHIP_NAME[sim0]} 6=1 1=0 + dut_run gpioset --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 6=1 1=0 gpiosim_check_value sim0 1 0 gpiosim_check_value sim0 6 1 @@ -1670,7 +1668,7 @@ test_gpioset_with_lines_strictly_by_name() { gpiosim_set_pull sim0 1 pull-down gpiosim_set_pull sim0 6 pull-up - dut_run gpioset --banner --by-name --chip ${GPIOSIM_CHIP_NAME[sim0]} 6=1 1=0 + dut_run gpioset --banner --by-name --chip "${GPIOSIM_CHIP_NAME[sim0]}" 6=1 1=0 gpiosim_check_value sim0 1 1 gpiosim_check_value sim0 6 0 @@ -1708,7 +1706,7 @@ test_gpioset_with_no_arguments() { test_gpioset_with_chip_but_no_line_specified() { gpiosim_chip sim0 num_lines=8 - run_tool gpioset --chip ${GPIOSIM_CHIP_NAME[sim0]} + run_tool gpioset --chip "${GPIOSIM_CHIP_NAME[sim0]}" output_regex_match ".*at least one GPIO line value must be specified" status_is 1 @@ -1719,7 +1717,7 @@ test_gpioset_with_offset_out_of_range() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpioset --chip $sim0 0=1 1=1 2=1 3=1 4=1 5=1 + run_tool gpioset --chip "$sim0" 0=1 1=1 2=1 3=1 4=1 5=1 output_regex_match ".*offset 4 is out of range on chip '$sim0'" output_regex_match ".*offset 5 is out of range on chip '$sim0'" @@ -1731,7 +1729,7 @@ test_gpioset_with_invalid_hold_period() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpioset --hold-period=bad --chip $sim0 0=1 + run_tool gpioset --hold-period=bad --chip "$sim0" 0=1 output_regex_match ".*invalid period.*" status_is 1 @@ -1743,13 +1741,13 @@ test_gpioset_with_invalid_value() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} # by name - run_tool gpioset --chip $sim0 0=c + run_tool gpioset --chip "$sim0" 0=c output_regex_match ".*invalid line value.*" status_is 1 # by value - run_tool gpioset --chip $sim0 0=3 + run_tool gpioset --chip "$sim0" 0=3 output_regex_match ".*invalid line value.*" status_is 1 @@ -1758,7 +1756,7 @@ test_gpioset_with_invalid_value() { test_gpioset_with_invalid_offset() { gpiosim_chip sim0 num_lines=8 - run_tool gpioset --chip ${GPIOSIM_CHIP_NAME[sim0]} 4000000000=0 + run_tool gpioset --chip "${GPIOSIM_CHIP_NAME[sim0]}" 4000000000=0 output_regex_match ".*cannot find line '4000000000'" status_is 1 @@ -1767,7 +1765,7 @@ test_gpioset_with_invalid_offset() { test_gpioset_with_invalid_bias() { gpiosim_chip sim0 num_lines=8 - run_tool gpioset --bias=bad --chip ${GPIOSIM_CHIP_NAME[sim0]} 0=1 1=1 + run_tool gpioset --bias=bad --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0=1 1=1 output_regex_match ".*invalid bias.*" status_is 1 @@ -1776,7 +1774,7 @@ test_gpioset_with_invalid_bias() { test_gpioset_with_invalid_drive() { gpiosim_chip sim0 num_lines=8 - run_tool gpioset --drive=bad --chip ${GPIOSIM_CHIP_NAME[sim0]} 0=1 1=1 + run_tool gpioset --drive=bad --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0=1 1=1 output_regex_match ".*invalid drive.*" status_is 1 @@ -1787,7 +1785,7 @@ test_gpioset_with_interactive_and_toggle() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpioset --interactive --toggle 1s --chip $sim0 0=1 + run_tool gpioset --interactive --toggle 1s --chip "$sim0" 0=1 output_regex_match ".*can't combine interactive with toggle" status_is 1 @@ -1806,25 +1804,25 @@ test_gpioset_with_same_line_twice() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} # by offset - run_tool gpioset --chip $sim0 0=1 0=1 + run_tool gpioset --chip "$sim0" 0=1 0=1 output_regex_match ".*lines '0' and '0' are the same line" status_is 1 # by name - run_tool gpioset --chip $sim0 foo=1 foo=1 + run_tool gpioset --chip "$sim0" foo=1 foo=1 output_regex_match ".*lines 'foo' and 'foo' are the same line" status_is 1 # by name and offset - run_tool gpioset --chip $sim0 foo=1 1=1 + run_tool gpioset --chip "$sim0" foo=1 1=1 output_regex_match ".*lines 'foo' and '1' are the same line" status_is 1 # by offset and name - run_tool gpioset --chip $sim0 1=1 foo=1 + run_tool gpioset --chip "$sim0" 1=1 foo=1 output_regex_match ".*lines '1' and 'foo' are the same line" status_is 1 @@ -1856,7 +1854,7 @@ test_gpiomon_by_offset() { gpiosim_set_pull sim0 4 pull-up - dut_run gpiomon --banner --edges=rising --chip $sim0 4 + dut_run gpiomon --banner --edges=rising --chip "$sim0" 4 dut_regex_match "Monitoring line .*" gpiosim_set_pull sim0 4 pull-down @@ -1874,7 +1872,7 @@ test_gpiomon_by_symlink() { gpiosim_set_pull sim0 4 pull-up - dut_run gpiomon --banner --edges=rising --chip $GPIOSIM_CHIP_LINK 4 + dut_run gpiomon --banner --edges=rising --chip "$GPIOSIM_CHIP_LINK" 4 dut_regex_match "Monitoring line .*" gpiosim_set_pull sim0 4 pull-down @@ -1893,7 +1891,7 @@ test_gpiomon_by_chip_and_name() { gpiosim_set_pull sim1 0 pull-up - dut_run gpiomon --banner --edges=rising --chip $sim1 foo + dut_run gpiomon --banner --edges=rising --chip "$sim1" foo dut_regex_match "Monitoring line .*" gpiosim_set_pull sim1 2 pull-down @@ -1925,7 +1923,7 @@ test_gpiomon_rising_edge() { gpiosim_set_pull sim0 4 pull-up - dut_run gpiomon --banner --edges=rising --chip $sim0 4 + dut_run gpiomon --banner --edges=rising --chip "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-down @@ -1941,7 +1939,7 @@ test_gpiomon_falling_edge() { gpiosim_set_pull sim0 4 pull-down - dut_run gpiomon --banner --edges=falling --chip $sim0 4 + dut_run gpiomon --banner --edges=falling --chip "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -1955,7 +1953,7 @@ test_gpiomon_both_edges() { gpiosim_chip sim0 num_lines=8 local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner --edges=both --chip $sim0 4 + dut_run gpiomon --banner --edges=both --chip "$sim0" 4 dut_regex_match "Monitoring line .*" gpiosim_set_pull sim0 4 pull-up @@ -1971,7 +1969,7 @@ test_gpiomon_with_pull_up() { gpiosim_set_pull sim0 4 pull-down - dut_run gpiomon --banner --bias=pull-up --chip $sim0 4 + dut_run gpiomon --banner --bias=pull-up --chip "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-down @@ -1986,7 +1984,7 @@ test_gpiomon_with_pull_down() { gpiosim_set_pull sim0 4 pull-up - dut_run gpiomon --banner --bias=pull-down --chip $sim0 4 + dut_run gpiomon --banner --bias=pull-down --chip "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2002,7 +2000,7 @@ test_gpiomon_with_active_low() { gpiosim_set_pull sim0 4 pull-up - dut_run gpiomon --banner --active-low --chip $sim0 4 + dut_run gpiomon --banner --active-low --chip "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-down @@ -2035,7 +2033,7 @@ test_gpiomon_with_quiet_mode() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner --edges=rising --quiet --chip $sim0 4 + dut_run gpiomon --banner --edges=rising --quiet --chip "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2063,7 +2061,7 @@ test_gpiomon_with_num_events() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} # redirect, as gpiomon exits after 4 events - dut_run_redirect gpiomon --num-events=4 --chip $sim0 4 + dut_run_redirect gpiomon --num-events=4 --chip "$sim0" 4 gpiosim_set_pull sim0 4 pull-up sleep 0.01 @@ -2107,7 +2105,7 @@ test_gpiomon_with_idle_timeout() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} # redirect, as gpiomon exits - dut_run_redirect gpiomon --idle-timeout 10ms --chip $sim0 4 + dut_run_redirect gpiomon --idle-timeout 10ms --chip "$sim0" 4 dut_wait status_is 0 @@ -2120,7 +2118,7 @@ test_gpiomon_multiple_lines() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner --format=%o --chip $sim0 1 3 2 5 4 + dut_run gpiomon --banner --format=%o --chip "$sim0" 1 3 2 5 4 dut_regex_match "Monitoring lines .*" gpiosim_set_pull sim0 2 pull-up @@ -2138,7 +2136,7 @@ test_gpiomon_multiple_lines_by_name_and_offset() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner --format=%o --chip $sim0 foo bar 3 + dut_run gpiomon --banner --format=%o --chip "$sim0" foo bar 3 dut_regex_match "Monitoring lines .*" gpiosim_set_pull sim0 2 pull-up @@ -2173,7 +2171,7 @@ test_gpiomon_exit_after_SIGINT() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner --chip $sim0 4 + dut_run gpiomon --banner --chip "$sim0" 4 dut_regex_match "Monitoring line .*" dut_kill -SIGINT @@ -2187,7 +2185,7 @@ test_gpiomon_exit_after_SIGTERM() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner --chip $sim0 4 + dut_run gpiomon --banner --chip "$sim0" 4 dut_regex_match "Monitoring line .*" dut_kill -SIGTERM @@ -2209,7 +2207,7 @@ test_gpiomon_with_same_line_twice() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} # by offset - run_tool gpiomon --chip $sim0 0 0 + run_tool gpiomon --chip "$sim0" 0 0 output_regex_match ".*lines '0' and '0' are the same line" status_is 1 @@ -2221,7 +2219,7 @@ test_gpiomon_with_same_line_twice() { status_is 1 # by name and offset - run_tool gpiomon --chip $sim0 1 foo + run_tool gpiomon --chip "$sim0" 1 foo output_regex_match ".*lines '1' and 'foo' are the same line" status_is 1 @@ -2248,7 +2246,7 @@ test_gpiomon_with_lines_by_offset() { gpiosim_set_pull sim0 1 pull-up - dut_run gpiomon --banner --chip $sim0 6 1 + dut_run gpiomon --banner --chip "$sim0" 6 1 dut_flush gpiosim_set_pull sim0 1 pull-down @@ -2275,7 +2273,7 @@ test_gpiomon_with_lines_strictly_by_name() { gpiosim_set_pull sim0 1 pull-up - dut_run gpiomon --banner --by-name --chip $sim0 42 13 + dut_run gpiomon --banner --by-name --chip "$sim0" 42 13 dut_flush gpiosim_set_pull sim0 1 pull-down @@ -2303,7 +2301,7 @@ test_gpiomon_with_no_arguments() { test_gpiomon_with_no_line_specified() { gpiosim_chip sim0 num_lines=8 - run_tool gpiomon --chip ${GPIOSIM_CHIP_NAME[sim0]} + run_tool gpiomon --chip "${GPIOSIM_CHIP_NAME[sim0]}" output_regex_match ".*at least one GPIO line must be specified" status_is 1 @@ -2314,7 +2312,7 @@ test_gpiomon_with_offset_out_of_range() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpiomon --chip $sim0 5 + run_tool gpiomon --chip "$sim0" 5 output_regex_match ".*offset 5 is out of range on chip '$sim0'" status_is 1 @@ -2325,7 +2323,7 @@ test_gpiomon_with_invalid_bias() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpiomon --bias=bad -c $sim0 0 1 + run_tool gpiomon --bias=bad -c "$sim0" 0 1 output_regex_match ".*invalid bias.*" status_is 1 @@ -2336,7 +2334,7 @@ test_gpiomon_with_invalid_debounce_period() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpiomon --debounce-period bad -c $sim0 0 1 + run_tool gpiomon --debounce-period bad -c "$sim0" 0 1 output_regex_match ".*invalid period: bad" status_is 1 @@ -2347,7 +2345,7 @@ test_gpiomon_with_invalid_idle_timeout() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpiomon --idle-timeout bad -c $sim0 0 1 + run_tool gpiomon --idle-timeout bad -c "$sim0" 0 1 output_regex_match ".*invalid period: bad" status_is 1 @@ -2358,7 +2356,7 @@ test_gpiomon_with_custom_format_event_type_offset() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner "--format=%e %o" -c $sim0 4 + dut_run gpiomon --banner "--format=%e %o" -c "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2371,7 +2369,7 @@ test_gpiomon_with_custom_format_event_type_offset_joined() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner "--format=%e%o" -c $sim0 4 + dut_run gpiomon --banner "--format=%e%o" -c "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2384,7 +2382,7 @@ test_gpiomon_with_custom_format_edge_chip_and_line() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner "--format=%e %o %E %c %l" -c $sim0 baz + dut_run gpiomon --banner "--format=%e %o %E %c %l" -c "$sim0" baz dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2396,7 +2394,7 @@ test_gpiomon_with_custom_format_seconds_timestamp() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner "--format=%e %o %S" -c $sim0 4 + dut_run gpiomon --banner "--format=%e %o %S" -c "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2409,7 +2407,7 @@ test_gpiomon_with_custom_format_UTC_timestamp() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} dut_run gpiomon --banner "--format=%U %e %o " --event-clock=realtime \ - -c $sim0 4 + -c "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2423,7 +2421,7 @@ test_gpiomon_with_custom_format_localtime_timestamp() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} dut_run gpiomon --banner "--format=%L %e %o" --event-clock=realtime \ - -c $sim0 4 + -c "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2436,7 +2434,7 @@ test_gpiomon_with_custom_format_double_percent_sign() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner "--format=start%%end" -c $sim0 4 + dut_run gpiomon --banner "--format=start%%end" -c "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2449,7 +2447,7 @@ test_gpiomon_with_custom_format_double_percent_sign_event_type_specifier() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner "--format=%%e" -c $sim0 4 + dut_run gpiomon --banner "--format=%%e" -c "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2462,7 +2460,7 @@ test_gpiomon_with_custom_format_single_percent_sign() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner "--format=%" -c $sim0 4 + dut_run gpiomon --banner "--format=%" -c "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2475,7 +2473,7 @@ test_gpiomon_with_custom_format_single_percent_sign_between_other_characters() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner "--format=foo % bar" -c $sim0 4 + dut_run gpiomon --banner "--format=foo % bar" -c "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2488,7 +2486,7 @@ test_gpiomon_with_custom_format_unknown_specifier() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpiomon --banner "--format=%x" -c $sim0 4 + dut_run gpiomon --banner "--format=%x" -c "$sim0" 4 dut_flush gpiosim_set_pull sim0 4 pull-up @@ -2508,7 +2506,7 @@ test_gpionotify_by_name() { dut_run gpionotify --banner foo dut_regex_match "Watching line .*" - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"foo\"" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"foo\"" @@ -2520,10 +2518,10 @@ test_gpionotify_by_offset() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --chip $sim0 4 + dut_run gpionotify --banner --chip "$sim0" 4 dut_regex_match "Watching line .*" - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 4" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 4" @@ -2536,10 +2534,10 @@ test_gpionotify_by_symlink() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --chip $GPIOSIM_CHIP_LINK 4 + dut_run gpionotify --banner --chip "$GPIOSIM_CHIP_LINK" 4 dut_regex_match "Watching line .*" - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0\\s+4" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0\\s+4" @@ -2552,10 +2550,10 @@ test_gpionotify_by_chip_and_name() { local sim1=${GPIOSIM_CHIP_NAME[sim1]} - dut_run gpionotify --banner --chip $sim1 foo + dut_run gpionotify --banner --chip "$sim1" foo dut_regex_match "Watching line .*" - request_release_line $sim1 2 + request_release_line "$sim1" 2 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim1 2 \"foo\"" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim1 2 \"foo\"" @@ -2572,7 +2570,7 @@ test_gpionotify_first_matching_named_line() { dut_run gpionotify --banner foobar dut_regex_match "Watching line .*" - request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 3 + request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 3 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"foobar\"" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"foobar\"" @@ -2586,10 +2584,10 @@ test_gpionotify_with_requested() { gpiosim_set_pull sim0 4 pull-up - dut_run gpionotify --banner --event=requested --chip $sim0 4 + dut_run gpionotify --banner --event=requested --chip "$sim0" 4 dut_flush - request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 4 + request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 4 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 4" assert_fail dut_readable } @@ -2600,10 +2598,10 @@ test_gpionotify_with_released() { gpiosim_set_pull sim0 4 pull-down - dut_run gpionotify --banner --event=released --chip $sim0 4 + dut_run gpionotify --banner --event=released --chip "$sim0" 4 dut_flush - request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 4 + request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 4 dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 4" assert_fail dut_readable } @@ -2613,10 +2611,10 @@ test_gpionotify_with_quiet_mode() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --quiet --chip $sim0 4 + dut_run gpionotify --banner --quiet --chip "$sim0" 4 dut_flush - request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 4 + request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 4 assert_fail dut_readable } @@ -2628,7 +2626,7 @@ test_gpionotify_with_unquoted() { dut_run gpionotify --banner --unquoted foo dut_regex_match "Watching line .*" - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+foo" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+foo" @@ -2640,11 +2638,11 @@ test_gpionotify_with_num_events() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} # redirect, as gpionotify exits after 4 events - dut_run_redirect gpionotify --num-events=4 --chip $sim0 3 4 + dut_run_redirect gpionotify --num-events=4 --chip "$sim0" 3 4 - request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 4 - request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 3 + request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 4 + request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 3 dut_wait status_is 0 @@ -2663,7 +2661,7 @@ test_gpionotify_with_idle_timeout() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} # redirect, as gpionotify exits - dut_run_redirect gpionotify --idle-timeout 10ms --chip $sim0 3 4 + dut_run_redirect gpionotify --idle-timeout 10ms --chip "$sim0" 3 4 dut_wait status_is 0 @@ -2677,18 +2675,18 @@ test_gpionotify_multiple_lines() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --chip $sim0 1 2 3 4 5 + dut_run gpionotify --banner --chip "$sim0" 1 2 3 4 5 dut_regex_match "Watching lines .*" - request_release_line $sim0 2 + request_release_line "$sim0" 2 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 2" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 2" - request_release_line $sim0 3 + request_release_line "$sim0" 3 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 3" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 3" - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 4" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 4" @@ -2700,18 +2698,18 @@ test_gpionotify_multiple_lines_by_name_and_offset() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --chip $sim0 bar foo 3 + dut_run gpionotify --banner --chip "$sim0" bar foo 3 dut_regex_match "Watching lines .*" - request_release_line $sim0 2 + request_release_line "$sim0" 2 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 2\\s+\"bar\"" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 2\\s+\"bar\"" - request_release_line $sim0 1 + request_release_line "$sim0" 1 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 1\\s+\"foo\"" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 1\\s+\"foo\"" - request_release_line $sim0 3 + request_release_line "$sim0" 3 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 3" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 3" @@ -2728,19 +2726,19 @@ test_gpionotify_multiple_lines_across_multiple_chips() { dut_run gpionotify --banner baz bar foo xyz dut_regex_match "Watching lines .*" - request_release_line $sim0 2 + request_release_line "$sim0" 2 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"bar\"" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"bar\"" - request_release_line $sim0 1 + request_release_line "$sim0" 1 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"foo\"" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"foo\"" - request_release_line $sim1 4 + request_release_line "$sim1" 4 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"xyz\"" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"xyz\"" - request_release_line $sim1 0 + request_release_line "$sim1" 0 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"baz\"" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"baz\"" @@ -2750,7 +2748,7 @@ test_gpionotify_multiple_lines_across_multiple_chips() { test_gpionotify_exit_after_SIGINT() { gpiosim_chip sim0 num_lines=8 - dut_run gpionotify --banner --chip ${GPIOSIM_CHIP_NAME[sim0]} 4 + dut_run gpionotify --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 4 dut_regex_match "Watching line .*" dut_kill -SIGINT @@ -2762,7 +2760,7 @@ test_gpionotify_exit_after_SIGINT() { test_gpionotify_exit_after_SIGTERM() { gpiosim_chip sim0 num_lines=8 - dut_run gpionotify --banner --chip ${GPIOSIM_CHIP_NAME[sim0]} 4 + dut_run gpionotify --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 4 dut_regex_match "Watching line .*" dut_kill -SIGTERM @@ -2784,7 +2782,7 @@ test_gpionotify_with_same_line_twice() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} # by offset - run_tool gpionotify --chip $sim0 0 0 + run_tool gpionotify --chip "$sim0" 0 0 output_regex_match ".*lines '0' and '0' are the same line" num_lines_is 1 @@ -2798,7 +2796,7 @@ test_gpionotify_with_same_line_twice() { status_is 1 # by name and offset - run_tool gpionotify --chip $sim0 1 foo + run_tool gpionotify --chip "$sim0" 1 foo output_regex_match ".*lines '1' and 'foo' are the same line" num_lines_is 1 @@ -2825,14 +2823,14 @@ test_gpionotify_with_lines_by_offset() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --chip $sim0 1 + dut_run gpionotify --banner --chip "$sim0" 1 dut_flush - request_release_line $sim0 1 + request_release_line "$sim0" 1 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 1" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 1" - request_release_line $sim0 6 + request_release_line "$sim0" 6 assert_fail dut_readable } @@ -2844,14 +2842,14 @@ test_gpionotify_with_lines_strictly_by_name() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --by-name --chip $sim0 1 + dut_run gpionotify --banner --by-name --chip "$sim0" 1 dut_flush - request_release_line $sim0 6 + request_release_line "$sim0" 6 dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 6 \"1\"" dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 6 \"1\"" - request_release_line $sim0 1 + request_release_line "$sim0" 1 assert_fail dut_readable } @@ -2865,7 +2863,7 @@ test_gpionotify_with_no_arguments() { test_gpionotify_with_no_line_specified() { gpiosim_chip sim0 num_lines=8 - run_tool gpionotify --chip ${GPIOSIM_CHIP_NAME[sim0]} + run_tool gpionotify --chip "${GPIOSIM_CHIP_NAME[sim0]}" output_regex_match ".*at least one GPIO line must be specified" status_is 1 @@ -2876,7 +2874,7 @@ test_gpionotify_with_offset_out_of_range() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpionotify --chip $sim0 5 + run_tool gpionotify --chip "$sim0" 5 output_regex_match ".*offset 5 is out of range on chip '$sim0'" status_is 1 @@ -2887,7 +2885,7 @@ test_gpionotify_with_invalid_idle_timeout() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - run_tool gpionotify --idle-timeout bad -c $sim0 0 1 + run_tool gpionotify --idle-timeout bad -c "$sim0" 0 1 output_regex_match ".*invalid period: bad" status_is 1 @@ -2898,10 +2896,10 @@ test_gpionotify_with_custom_format_event_type_offset() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --event=requested "--format=%e %o" -c $sim0 4 + dut_run gpionotify --banner --event=requested "--format=%e %o" -c "$sim0" 4 dut_flush - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_read output_is "1 4" } @@ -2911,10 +2909,10 @@ test_gpionotify_with_custom_format_event_type_offset_joined() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --event=requested "--format=%e%o" -c $sim0 4 + dut_run gpionotify --banner --event=requested "--format=%e%o" -c "$sim0" 4 dut_flush - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_read output_is "14" } @@ -2925,10 +2923,10 @@ test_gpionotify_with_custom_format_event_chip_and_line() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} dut_run gpionotify --banner --event=released \ - "--format=%e %o %E %c %l" -c $sim0 baz + "--format=%e %o %E %c %l" -c "$sim0" baz dut_flush - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_regex_match "2 4 released $sim0 baz" } @@ -2938,10 +2936,10 @@ test_gpionotify_with_custom_format_seconds_timestamp() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} dut_run gpionotify --banner --event=requested "--format=%e %o %S" \ - -c $sim0 4 + -c "$sim0" 4 dut_flush - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_regex_match "1 4 [0-9]+\\.[0-9]+" } @@ -2951,10 +2949,10 @@ test_gpionotify_with_custom_format_UTC_timestamp() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} dut_run gpionotify --banner --event=released \ - "--format=%U %e %o" -c $sim0 4 + "--format=%U %e %o" -c "$sim0" 4 dut_flush - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_regex_match \ "[0-9][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\\.[0-9]+Z 2 4" } @@ -2965,10 +2963,10 @@ test_gpionotify_with_custom_format_localtime_timestamp() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} dut_run gpionotify --banner --event=released \ - "--format=%L %e %o" -c $sim0 4 + "--format=%L %e %o" -c "$sim0" 4 dut_flush - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_regex_match \ "[0-9][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\\.[0-9]+ 2 4" } @@ -2979,10 +2977,10 @@ test_gpionotify_with_custom_format_double_percent_sign() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} dut_run gpionotify --banner --event=requested "--format=start%%end" \ - -c $sim0 4 + -c "$sim0" 4 dut_flush - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_read output_is "start%end" } @@ -2992,10 +2990,10 @@ test_gpionotify_with_custom_format_double_percent_sign_event_type_specifier() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --event=requested "--format=%%e" -c $sim0 4 + dut_run gpionotify --banner --event=requested "--format=%%e" -c "$sim0" 4 dut_flush - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_read output_is "%e" } @@ -3005,10 +3003,10 @@ test_gpionotify_with_custom_format_single_percent_sign() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --event=requested "--format=%" -c $sim0 4 + dut_run gpionotify --banner --event=requested "--format=%" -c "$sim0" 4 dut_flush - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_read output_is "%" } @@ -3018,10 +3016,10 @@ test_gpionotify_with_custom_format_single_percent_sign_between_other_characters( local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --event=requested "--format=foo % bar" -c $sim0 4 + dut_run gpionotify --banner --event=requested "--format=foo % bar" -c "$sim0" 4 dut_flush - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_read output_is "foo % bar" } @@ -3031,10 +3029,10 @@ test_gpionotify_with_custom_format_unknown_specifier() { local sim0=${GPIOSIM_CHIP_NAME[sim0]} - dut_run gpionotify --banner --event=requested "--format=%x" -c $sim0 4 + dut_run gpionotify --banner --event=requested "--format=%x" -c "$sim0" 4 dut_flush - request_release_line $sim0 4 + request_release_line "$sim0" 4 dut_read output_is "%x" }