Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/tools/testing/selftests/ptp/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  phc.sh   Sprache: Shell

 
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0

ALL_TESTS="
 settime
 adjtime
 adjfreq
"
DEV=$1

##############################################################################
# Sanity checks

if [[ "$(id -u)" -ne 0 ]]; then
 echo "SKIP: need root privileges"
 exit 0
fi

if [[ "$DEV" == "" ]]; then
 echo "SKIP: PTP device not provided"
 exit 0
fi

require_command()
{
 local cmd=$1; shift

 if [[ ! -x "$(command -v "$cmd")" ]]; then
  echo "SKIP: $cmd not installed"
  exit 1
 fi
}

phc_sanity()
{
 phc_ctl $DEV get &> /dev/null

 if [ $? != 0 ]; then
  echo "SKIP: unknown clock $DEV: No such device"
  exit 1
 fi
}

require_command phc_ctl
phc_sanity

##############################################################################
# Helpers

# Exit status to return at the end. Set in case one of the tests fails.
EXIT_STATUS=0
# Per-test return value. Clear at the beginning of each test.
RET=0

check_err()
{
 local err=$1

 if [[ $RET -eq 0 && $err -ne 0 ]]; then
  RET=$err
 fi
}

log_test()
{
 local test_name=$1

 if [[ $RET -ne 0 ]]; then
  EXIT_STATUS=1
  printf "TEST: %-60s [FAIL]\n" "$test_name"
  return 1
 fi

 printf "TEST: %-60s [ OK ]\n" "$test_name"
 return 0
}

tests_run()
{
 local current_test

 for current_test in ${TESTS:-$ALL_TESTS}; do
  $current_test
 done
}

##############################################################################
# Tests

settime_do()
{
 local res

 res=$(phc_ctl $DEV set 0 wait 120.5 get 2> /dev/null \
  | awk '/clock time is/{print $5}' \
  | awk -F. '{print $1}')

 (( res == 120 ))
}

adjtime_do()
{
 local res

 res=$(phc_ctl $DEV set 0 adj 10 get 2> /dev/null \
  | awk '/clock time is/{print $5}' \
  | awk -F. '{print $1}')

 (( res == 10 ))
}

adjfreq_do()
{
 local res

 # Set the clock to be 1% faster
 res=$(phc_ctl $DEV freq 10000000 set 0 wait 100.5 get 2> /dev/null \
  | awk '/clock time is/{print $5}' \
  | awk -F. '{print $1}')

 (( res == 101 ))
}

##############################################################################

cleanup()
{
 phc_ctl $DEV freq 0.0 &> /dev/null
 phc_ctl $DEV set &> /dev/null
}

settime()
{
 RET=0

 settime_do
 check_err $?
 log_test "settime"
 cleanup
}

adjtime()
{
 RET=0

 adjtime_do
 check_err $?
 log_test "adjtime"
 cleanup
}

adjfreq()
{
 RET=0

 adjfreq_do
 check_err $?
 log_test "adjfreq"
 cleanup
}

trap cleanup EXIT

tests_run

exit $EXIT_STATUS

Messung V0.5
C=93 H=92 G=92

¤ Dauer der Verarbeitung: 0.21 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.