transport: print reader device/number on init

When we initialize the reader, we currently tell only which type of
interface we are using, but we do not print the reader number or the
device path.

Let's extend the messages so that the path is printed. To prevent
problems with integration-tests, let's also add an environment variable
that we can use to detect when pySim runs inside a integration-test.

Related: OS#6210
Change-Id: Ibe296d51885b1ef5f9c9ecaf1d28da52014dcc4b
This commit is contained in:
Philipp Maier
2023-10-26 12:17:32 +02:00
committed by laforge
parent cbc0bdfaa9
commit 4af63dc760
6 changed files with 22 additions and 6 deletions

View File

@@ -79,8 +79,10 @@ class CalypsoSimLink(LinkBase):
def __init__(self, sock_path: str = "/tmp/osmocom_l2", **kwargs):
super().__init__(**kwargs)
print("Using Calypso-based (OsmocomBB) reader interface")
if os.environ.get('PYSIM_INTEGRATION_TEST') == "1":
print("Using Calypso-based (OsmocomBB) reader interface")
else:
print("Using Calypso-based (OsmocomBB) reader at socket %s" % sock_path)
# Make sure that a given socket path exists
if not os.path.exists(sock_path):
raise ReaderError(

View File

@@ -21,6 +21,7 @@ import serial
import time
import re
import argparse
import os
from typing import Optional
from pySim.utils import Hexstr, ResTuple
@@ -36,7 +37,10 @@ class ModemATCommandLink(LinkBase):
def __init__(self, device: str = '/dev/ttyUSB0', baudrate: int = 115200, **kwargs):
super().__init__(**kwargs)
print("Using modem for Generic SIM Access (3GPP TS 27.007)")
if os.environ.get('PYSIM_INTEGRATION_TEST') == "1":
print("Using modem for Generic SIM Access (3GPP TS 27.007)")
else:
print("Using modem for Generic SIM Access (3GPP TS 27.007) at port %s" % device)
self._sl = serial.Serial(device, baudrate, timeout=5)
self._echo = False # this will be auto-detected by _check_echo()
self._device = device

View File

@@ -18,6 +18,7 @@
#
import argparse
import os
from typing import Optional
from smartcard.CardConnection import CardConnection
@@ -35,7 +36,10 @@ class PcscSimLink(LinkBase):
def __init__(self, reader_number: int = 0, **kwargs):
super().__init__(**kwargs)
print("Using PC/SC reader interface")
if os.environ.get('PYSIM_INTEGRATION_TEST') == "1":
print("Using PC/SC reader interface")
else:
print("Using PC/SC reader number %u" % reader_number)
r = readers()
if reader_number >= len(r):
raise ReaderError('No reader found for number %d' % reader_number)

View File

@@ -18,7 +18,7 @@
import serial
import time
import os.path
import os
import argparse
from typing import Optional
@@ -33,7 +33,10 @@ class SerialSimLink(LinkBase):
def __init__(self, device: str = '/dev/ttyUSB0', baudrate: int = 9600, rst: str = '-rts',
debug: bool = False, **kwargs):
super().__init__(**kwargs)
print("Using serial reader interface")
if os.environ.get('PYSIM_INTEGRATION_TEST') == "1":
print("Using serial reader interface")
else:
print("Using serial reader interface at port %s" % device)
if not os.path.exists(device):
raise ValueError("device file %s does not exist -- abort" % device)
self._sl = serial.Serial(

View File

@@ -25,6 +25,7 @@ PYSIM_READ=../pySim-read.py
TEMPFILE=temp.tmp
PYTHON=python3
export PYSIM_INTEGRATION_TEST=1
set -e
echo "pySim-prog_test - a test program to test pySim-prog.py"

View File

@@ -24,6 +24,8 @@ PYSIM_TRACE=../pySim-trace.py
GSMTAP_TRACE=pySim-trace_test_gsmtap.pcapng
TEMPFILE=temp.tmp
export PYSIM_INTEGRATION_TEST=1
echo "pySim-trace_test - a test program to test pySim-trace.py"
echo "========================================================"