platform/upstream/ofono.git
11 years agostktest: merge cusatt
Denis Kenzior [Fri, 28 Sep 2012 22:39:11 +0000 (17:39 -0500)]
stktest: merge cusatt

11 years agostktest: Fixup message
Denis Kenzior [Fri, 28 Sep 2012 22:38:42 +0000 (17:38 -0500)]
stktest: Fixup message

11 years agostktest: Add additional error types
Denis Kenzior [Fri, 28 Sep 2012 22:37:06 +0000 (17:37 -0500)]
stktest: Add additional error types

11 years agostktest: Fix error interface
Denis Kenzior [Fri, 28 Sep 2012 22:36:22 +0000 (17:36 -0500)]
stktest: Fix error interface

11 years agostktest: merge cusatt
Denis Kenzior [Fri, 28 Sep 2012 15:58:30 +0000 (10:58 -0500)]
stktest: merge cusatt

11 years agosktest: Turn off echo
Denis Kenzior [Fri, 28 Sep 2012 15:37:22 +0000 (10:37 -0500)]
sktest: Turn off echo

11 years agostktest: implement CUSATT handler
Denis Kenzior [Fri, 28 Sep 2012 15:37:07 +0000 (10:37 -0500)]
stktest: implement CUSATT handler

11 years agostktest: indentation fixes
Denis Kenzior [Fri, 28 Sep 2012 15:36:39 +0000 (10:36 -0500)]
stktest: indentation fixes

11 years agounit: Move display text data to common header
Denis Kenzior [Thu, 27 Sep 2012 19:23:56 +0000 (14:23 -0500)]
unit: Move display text data to common header

11 years agostktest: Add send_proactive_command utility
Denis Kenzior [Thu, 27 Sep 2012 18:44:34 +0000 (13:44 -0500)]
stktest: Add send_proactive_command utility

11 years agostktest: Add agent registration
Denis Kenzior [Thu, 27 Sep 2012 18:44:04 +0000 (13:44 -0500)]
stktest: Add agent registration

11 years agostktest: Add send_with_reply utility
Denis Kenzior [Thu, 27 Sep 2012 17:36:25 +0000 (12:36 -0500)]
stktest: Add send_with_reply utility

11 years agostktest: Add STK Agent API skeleton
Denis Kenzior [Thu, 27 Sep 2012 17:36:02 +0000 (12:36 -0500)]
stktest: Add STK Agent API skeleton

11 years agostktest: Rework state logic
Denis Kenzior [Thu, 27 Sep 2012 17:35:29 +0000 (12:35 -0500)]
stktest: Rework state logic

11 years agostktest: Add basic power up logic
Denis Kenzior [Thu, 27 Sep 2012 16:36:47 +0000 (11:36 -0500)]
stktest: Add basic power up logic

11 years agostktest: Add initial modem emulator logic
Denis Kenzior [Thu, 27 Sep 2012 16:20:11 +0000 (11:20 -0500)]
stktest: Add initial modem emulator logic

11 years ago.gitignore: Update with stktest
Denis Kenzior [Tue, 25 Sep 2012 19:00:04 +0000 (14:00 -0500)]
.gitignore: Update with stktest

11 years agotools: Add basic stktest skeleton
Denis Kenzior [Tue, 25 Sep 2012 18:59:34 +0000 (13:59 -0500)]
tools: Add basic stktest skeleton

11 years agoplugins: Add stktest plugin
Denis Kenzior [Tue, 25 Sep 2012 18:59:09 +0000 (13:59 -0500)]
plugins: Add stktest plugin

11 years agosmsutil: Fix warning
Denis Kenzior [Mon, 1 Oct 2012 14:40:14 +0000 (09:40 -0500)]
smsutil: Fix warning

src/smsutil.c: In function ‘cbs_decode_text’:
src/smsutil.c:4116:16: error: comparison between signed and unsigned
integer expressions [-Werror=sign-compare]

11 years agodoc: Tweak comment on behavior of VoiceCall.Hangup
Denis Kenzior [Wed, 26 Sep 2012 22:52:16 +0000 (17:52 -0500)]
doc: Tweak comment on behavior of VoiceCall.Hangup

11 years agostkagent: Sanitize any output from the agent
Philippe Nunes [Tue, 28 Aug 2012 13:32:41 +0000 (15:32 +0200)]
stkagent: Sanitize any output from the agent

11 years agosmsutil: Fix up style issues from previous commit
Denis Kenzior [Mon, 17 Sep 2012 16:56:09 +0000 (11:56 -0500)]
smsutil: Fix up style issues from previous commit

11 years agosmsutil: <CR> is not necessarily a CBS padding character
Philippe Nunes [Fri, 31 Aug 2012 15:03:57 +0000 (17:03 +0200)]
smsutil: <CR> is not necessarily a CBS padding character

11 years agosmsutil: Fix CR padding logic for 7-bit case
Denis Kenzior [Mon, 17 Sep 2012 16:48:03 +0000 (11:48 -0500)]
smsutil: Fix CR padding logic for 7-bit case

11 years agounit: Add test to check CBS padding character
Guillaume Zajac [Fri, 31 Aug 2012 15:03:58 +0000 (17:03 +0200)]
unit: Add test to check CBS padding character

This CBS unit test is used to check that the <CR> character can
be interpreted as a wanted carriage return and not necessarily
as a padding character.

11 years agosmsutil: Fix style issues
Philippe Nunes [Fri, 31 Aug 2012 15:03:56 +0000 (17:03 +0200)]
smsutil: Fix style issues

11 years agostk: AID shall not be displayed in certain cases
Philippe Nunes [Thu, 6 Sep 2012 14:26:29 +0000 (16:26 +0200)]
stk: AID shall not be displayed in certain cases

When the icon is marked as self explanatory, the AID should not be
displayed.

11 years agostk: move number conversion to a utility function
Philippe Nunes [Thu, 6 Sep 2012 14:26:28 +0000 (16:26 +0200)]
stk: move number conversion to a utility function

The dialing number provided by the Setup Call proactive command
may contain pause and DTMF characters.

11 years agoisimodem: Fix style issues in previous commit
Denis Kenzior [Wed, 12 Sep 2012 04:30:04 +0000 (23:30 -0500)]
isimodem: Fix style issues in previous commit

11 years agoisimodem: voicecall answer fix for Nemo on N9
Jarko Poutiainen [Mon, 10 Sep 2012 12:16:07 +0000 (15:16 +0300)]
isimodem: voicecall answer fix for Nemo on N9

Voicecall answering in Mer/Nemomobile run on Nokia N9 will fail
unless call id is passed to modem.

11 years agotest: iconId value is not a printable character
Philippe Nunes [Thu, 6 Sep 2012 14:38:47 +0000 (16:38 +0200)]
test: iconId value is not a printable character

11 years agotest: playtone waits for single tone playback
Philippe Nunes [Thu, 6 Sep 2012 14:38:46 +0000 (16:38 +0200)]
test: playtone waits for single tone playback

To simulate the single tone playback (avoiding the stkagent method
to return immediately), a timeout is started (5 seconds).
During this time, the user can terminate the session.

11 years agotest: Update with RequestQuickDigit API
Philippe Nunes [Thu, 6 Sep 2012 14:38:45 +0000 (16:38 +0200)]
test: Update with RequestQuickDigit API

11 years agonetreg: Remove netreg atom in case init fails
Denis Kenzior [Wed, 12 Sep 2012 04:21:27 +0000 (23:21 -0500)]
netreg: Remove netreg atom in case init fails

11 years agonetreg: Don't register for CIEV twice
Denis Kenzior [Wed, 12 Sep 2012 04:20:53 +0000 (23:20 -0500)]
netreg: Don't register for CIEV twice

11 years agonetreg: Add telit version for ciev notification
Christopher Vogl [Thu, 6 Sep 2012 09:49:17 +0000 (11:49 +0200)]
netreg: Add telit version for ciev notification

11 years agonetreg: Query and select supported CMER modes
Christopher Vogl [Thu, 6 Sep 2012 09:49:18 +0000 (11:49 +0200)]
netreg: Query and select supported CMER modes

11 years agosms: Optimize behavior of previous commit
Denis Kenzior [Wed, 12 Sep 2012 03:31:44 +0000 (22:31 -0500)]
sms: Optimize behavior of previous commit

The previous commit fixed the bug, however performing a linear-search
through the entire tx-queue is quite wasteful.  The current usage
pattern is to always modify the entry at the tail of the queue, so
optimize.

11 years agosms: Fix to find SMS entry posted by STK
Philippe Nunes [Thu, 30 Aug 2012 16:24:07 +0000 (18:24 +0200)]
sms: Fix to find SMS entry posted by STK

SMS initiated by proactive command are not exposed on D-BUS.
Therefore, there is no message associated with the entry created from
STK.

11 years agodoc: Update errors for SupplementaryServices API
Denis Kenzior [Thu, 6 Sep 2012 15:20:25 +0000 (10:20 -0500)]
doc: Update errors for SupplementaryServices API

11 years agoussd: Recover idle state after a transaction error
Philippe Nunes [Thu, 6 Sep 2012 14:21:46 +0000 (16:21 +0200)]
ussd: Recover idle state after a transaction error

The "USSD terminated by network" notification is handled to recover
the idle state in case of USSD transaction error.

11 years agodbus: Add Terminated error
Philippe Nunes [Thu, 6 Sep 2012 14:21:45 +0000 (16:21 +0200)]
dbus: Add Terminated error

11 years agoRelease 1.11 1.11
Marcel Holtmann [Tue, 11 Sep 2012 14:05:26 +0000 (16:05 +0200)]
Release 1.11

11 years agobuild: Enable dundee and tools when building distribution
Marcel Holtmann [Tue, 11 Sep 2012 14:03:06 +0000 (16:03 +0200)]
build: Enable dundee and tools when building distribution

11 years agoatmodem: specify class for call barring query
Philippe Nunes [Wed, 5 Sep 2012 16:56:22 +0000 (18:56 +0200)]
atmodem: specify class for call barring query

class is specified when querying the call barring status if
the class is not the default (7 - voice, data and fax)

11 years agocall-barring: SS query is made with given cls
Philippe Nunes [Wed, 5 Sep 2012 16:56:21 +0000 (18:56 +0200)]
call-barring: SS query is made with given cls

The default class is applied in the query form when no class is
specified in the SS code.

11 years agocall-forwarding: SS query is made with given cls
Philippe Nunes [Wed, 5 Sep 2012 16:56:20 +0000 (18:56 +0200)]
call-forwarding: SS query is made with given cls

GCF test cases 31.2.1.6.1/2 are asking to make a query according a
specific class. The default class is applied in the query form when
no class is specified in the SS code.

11 years agovoicecall: Accept long phone number format for STK
Philippe Nunes [Wed, 5 Sep 2012 17:19:38 +0000 (19:19 +0200)]
voicecall: Accept long phone number format for STK

11 years agodoc: Add a few BT-related clarifications
Denis Kenzior [Wed, 5 Sep 2012 03:03:14 +0000 (22:03 -0500)]
doc: Add a few BT-related clarifications

The 'Name' and 'Serial' property take on slightly different meanings in
the case of Bluetooth devices (e.g. HFP).  Update the documentation to
reflect that.

11 years agogatchat: Print error message if opening tun failes
Daniel Wagner [Fri, 24 Aug 2012 12:16:39 +0000 (14:16 +0200)]
gatchat: Print error message if opening tun failes

This is a very common mistake. Let's help the users to
configure their system correctly.

11 years agostk: Fix comment style
Denis Kenzior [Thu, 30 Aug 2012 22:01:36 +0000 (17:01 -0500)]
stk: Fix comment style

11 years agostk: Ask for immediate digit response as required
Philippe Nunes [Tue, 28 Aug 2012 13:21:21 +0000 (15:21 +0200)]
stk: Ask for immediate digit response as required

This is done by using the stk_agent_request_quick_digit function
introduced in the previous commit.

11 years agostkagent: Add stk_agent_get_quick_digit
Philippe Nunes [Tue, 28 Aug 2012 13:21:20 +0000 (15:21 +0200)]
stkagent: Add stk_agent_get_quick_digit

This function calls the newly added RequestQuickDigit method on the
StkAgent interface.

11 years agodoc: Add RequestQuickDigit method to StkAgent
Philippe Nunes [Tue, 28 Aug 2012 13:21:19 +0000 (15:21 +0200)]
doc: Add RequestQuickDigit method to StkAgent

Add new STK Agent API to get digit response on single key press

11 years agostk: Check if an agent is registered when UI is required
Philippe Nunes [Thu, 30 Aug 2012 16:20:41 +0000 (18:20 +0200)]
stk: Check if an agent is registered when UI is required

In case of unsolicited proactive command, we could have a crash
when no agent was registered.

11 years agostk: Display action information while sending USSD
Philippe Nunes [Tue, 28 Aug 2012 13:33:52 +0000 (15:33 +0200)]
stk: Display action information while sending USSD

11 years agotelit: enable extended sim status notification
Christopher Vogl [Wed, 29 Aug 2012 15:01:09 +0000 (17:01 +0200)]
telit: enable extended sim status notification

Use AT#QSS=2 instead of AT#QSS=1 to get an URC when the SIM is not only
inserted but also when PIN is unlocked and when SMS + phonebook are
ready to be used.

Disable sim state notification in telit_enable() so that we sure get a
notification when we enable it later again. This way we don't have to
query the state the first time. Without this the Telit modem does not
always send an URC when AT#QSS=2 is sent.

Remove sim_inserted_source and sim_inserted_timeout_cb which are not
needed anymore as a consequence.
By the way the 1 second timeout was an ugly hack.

Don't query current SIM status in cfun_enable_cb() as the SIM is
disabled due to prior AT+CFUN=4.

Register '#QSS:' before enabling sim state notifications.

Remove telit_qss_cb() which was used as a callback for querying the
current SIM status.

Move sms atom creation into switch_sim_state_status() and add creation
of phonebook atom. These are created when QSS: 3 is received.

11 years agotelit: Avoid resetting the SIM
Christopher Vogl [Wed, 29 Aug 2012 15:01:09 +0000 (17:01 +0200)]
telit: Avoid resetting the SIM

Avoid a reset  when switching between online and offline (airplane)
mode in telit_set_online(). +CFUN accepts a second parameter (0), which
disables a reset: AT+CFUN=x,0.

11 years agogdbus: Fix compilation error if macro "error" is defined
Jaganath Kanakkassery [Thu, 16 Aug 2012 12:51:19 +0000 (18:21 +0530)]
gdbus: Fix compilation error if macro "error" is defined

The variable "signature" used in error is not defined and "args" is now
a struct instead of a string.

11 years agosim: return from CPIN when SIM unlocked for telit
Christopher Vogl [Wed, 22 Aug 2012 14:24:05 +0000 (16:24 +0200)]
sim: return from CPIN when SIM unlocked for telit

Only return from CPIN when the modem informs that the SIM is ready

11 years agocall-settings: Improve error reporting
Philippe Nunes [Wed, 22 Aug 2012 16:18:22 +0000 (18:18 +0200)]
call-settings: Improve error reporting

Report error based on the error reported by the driver.

11 years agocall-barring: Improve error reporting
Philippe Nunes [Wed, 22 Aug 2012 16:18:20 +0000 (18:18 +0200)]
call-barring: Improve error reporting

Report error based on the error reported by the driver.

11 years agocall-forwarding: improve error reporting
Philippe Nunes [Wed, 22 Aug 2012 16:18:18 +0000 (18:18 +0200)]
call-forwarding: improve error reporting

Report error based on the error reported by the driver.

11 years agotelit: disable auto attach procedures with AUTOATT
Christopher Vogl [Tue, 21 Aug 2012 15:06:37 +0000 (17:06 +0200)]
telit: disable auto attach procedures with AUTOATT

11 years agotelit: Fix warning
Denis Kenzior [Mon, 20 Aug 2012 13:10:27 +0000 (08:10 -0500)]
telit: Fix warning

plugins/telit.c: In function ‘rsen_disable_cb’:
plugins/telit.c:446:21: error: unused variable ‘data’

11 years agotelit: add additional port for data connection
Christopher Vogl [Fri, 17 Aug 2012 09:04:36 +0000 (11:04 +0200)]
telit: add additional port for data connection

Use MDM port for data service and AUX for the AT chat.
Disable DCD so that the modem does not hangup after a data connection.

11 years agoudevng: rename aux port from Data to Aux for telit
Christopher Vogl [Fri, 17 Aug 2012 08:53:11 +0000 (10:53 +0200)]
udevng: rename aux port from Data to Aux for telit

Telit software user guide says:
USB AUX doesn't support any flow control method. Therefore, this port
isn't suitable for DATA service port.
We recommend this port should be used only for AT command and URC
processing.

11 years agodundee: Add missing SetProperty documenation
Daniel Wagner [Fri, 17 Aug 2012 12:58:11 +0000 (14:58 +0200)]
dundee: Add missing SetProperty documenation

11 years agodundee: disconnect bluetooth link in case dial fails
Gustavo Padovan [Mon, 13 Aug 2012 21:52:06 +0000 (18:52 -0300)]
dundee: disconnect bluetooth link in case dial fails

If the ATD*99# dial fails for some reason, NO CARRIER, for example, we
need to disconnect the bluetooth link and do further clean up on
disconnect_callback().

11 years agodundee: explicit shutdown the bluetooth file descriptor
Gustavo Padovan [Tue, 14 Aug 2012 07:14:32 +0000 (04:14 -0300)]
dundee: explicit shutdown the bluetooth file descriptor

If we do not shut it down the fd can remain opened. This make impossible
to try a re-connect: busy is returned in this case.

We call shutdown here to make sure that the link is always closed.

11 years agodundee: add timeout to close stalled ppp handshake
Gustavo Padovan [Tue, 14 Aug 2012 07:14:31 +0000 (04:14 -0300)]
dundee: add timeout to close stalled ppp handshake

If something goes wrong the PPP handshake can stall, then we just add a
timer to return an error after a certain timeout (15 seconds).

11 years agombm: Fix crash from processing multiple *EMRDY
Denis Kenzior [Thu, 16 Aug 2012 16:39:22 +0000 (11:39 -0500)]
mbm: Fix crash from processing multiple *EMRDY

Sometimes we see the *EMRDY notification before we query, and trigger
initialization procedures twice.

11 years agombm: Remove spurious ';'
Denis Kenzior [Thu, 16 Aug 2012 16:20:45 +0000 (11:20 -0500)]
mbm: Remove spurious ';'

11 years agotelit: pass vendor at sim atom creation
Christopher Vogl [Thu, 16 Aug 2012 09:01:48 +0000 (11:01 +0200)]
telit: pass vendor at sim atom creation

11 years agotelit: Fix 80 character per line violation
Denis Kenzior [Thu, 16 Aug 2012 06:15:39 +0000 (01:15 -0500)]
telit: Fix 80 character per line violation

11 years agotelit: move gprs atom into post sim phase
Christopher Vogl [Thu, 16 Aug 2012 08:40:08 +0000 (10:40 +0200)]
telit: move gprs atom into post sim phase

11 years agogprs: data bearer for telit with PSNT
August Mayer [Thu, 16 Aug 2012 08:11:16 +0000 (10:11 +0200)]
gprs: data bearer for telit with PSNT

Telit neither supports '+CPSB' nor reports the data bearer through
'+CGREG'. It has its own +PSNT command.

11 years agosim: Minor formatting nitpicks
Denis Kenzior [Thu, 16 Aug 2012 06:05:01 +0000 (01:05 -0500)]
sim: Minor formatting nitpicks

11 years agosim: Fix warning
Denis Kenzior [Thu, 16 Aug 2012 06:04:47 +0000 (01:04 -0500)]
sim: Fix warning

drivers/atmodem/sim.c: In function ‘at_pct_cb’:
drivers/atmodem/sim.c:872:2: error: ISO C90 forbids mixed declarations
and code

11 years agoAUTHORS: Mention August's contributions
Denis Kenzior [Thu, 16 Aug 2012 06:00:57 +0000 (01:00 -0500)]
AUTHORS: Mention August's contributions

11 years agosim: support PIN retry counters for telit modems
August Mayer [Thu, 16 Aug 2012 07:37:20 +0000 (09:37 +0200)]
sim: support PIN retry counters for telit modems

11 years agosim: implement function to get password type
August Mayer [Thu, 16 Aug 2012 07:37:19 +0000 (09:37 +0200)]
sim: implement function to get password type

11 years agosim: add function to get password type
August Mayer [Thu, 16 Aug 2012 07:37:18 +0000 (09:37 +0200)]
sim: add function to get password type

11 years agounit: Add a unit test for empty sim strings
Denis Kenzior [Thu, 16 Aug 2012 05:49:45 +0000 (00:49 -0500)]
unit: Add a unit test for empty sim strings

11 years agoutil: Make sure to handle special empty strings
Denis Kenzior [Thu, 16 Aug 2012 05:47:59 +0000 (00:47 -0500)]
util: Make sure to handle special empty strings

Some SIMs contain an EFspn with the contents all set to 'filler'
characters, e.g. 0xFF.  We mistakenly do not handle these strings
correctly.

Aug  8 11:40:00 mx31tt01 daemon.info ofonod[622]: Aux: >
AT+CRSM=176,28486,0,0,17\r
Aug  8 11:40:00 mx31tt01 daemon.info ofonod[622]: Aux: < \r\n+CRSM:
144,0,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\r\n\r\nOK\r\n
Aug  8 11:40:00 mx31tt01 daemon.debug ofonod[622]:
drivers/atmodem/sim.c:at_crsm_read_cb() crsm_read_cb: 90, 00, 17
Aug  8 11:40:00 mx31tt01 daemon.debug ofonod[622]:
src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff: 0, tocopy: 17
Aug  8 11:40:00 mx31tt01 daemon.err ofonod[622]: EFspn read
successfully, but couldn't parse

11 years agogprs: fix bearer dbus signal interface
Christopher Vogl [Mon, 13 Aug 2012 13:23:58 +0000 (15:23 +0200)]
gprs: fix bearer dbus signal interface

According to the documentation the data bearer property should be
located on interface org.ofono.ConnectionManager.

11 years agogprs-context: print reason for ppp disconnect
Christopher Vogl [Mon, 13 Aug 2012 13:22:42 +0000 (15:22 +0200)]
gprs-context: print reason for ppp disconnect

11 years agodoc: Trivial whitespace fixes
Mikel Astiz [Mon, 13 Aug 2012 08:06:26 +0000 (10:06 +0200)]
doc: Trivial whitespace fixes

Always use tabs instead of spaces for indentation in documentation
files.

11 years agotest: Fix printing of modem property strings
Marcel Holtmann [Thu, 9 Aug 2012 17:28:27 +0000 (10:28 -0700)]
test: Fix printing of modem property strings

11 years agotest: Remove test-voicecall script
Denis Kenzior [Tue, 7 Aug 2012 07:25:01 +0000 (02:25 -0500)]
test: Remove test-voicecall script

This is no longer useful as phonesim does not automatically transition
dialing calls to active state.

11 years agotest: Add support for CSSI/CSSU notifications
Denis Kenzior [Tue, 7 Aug 2012 06:30:51 +0000 (01:30 -0500)]
test: Add support for CSSI/CSSU notifications

11 years agotest: Fix weird formatting mis-matches
Denis Kenzior [Tue, 7 Aug 2012 06:29:47 +0000 (01:29 -0500)]
test: Fix weird formatting mis-matches

11 years agotest: Remove redundant code from monitor-ofono
Denis Kenzior [Tue, 7 Aug 2012 06:26:57 +0000 (01:26 -0500)]
test: Remove redundant code from monitor-ofono

11 years agoRelease 1.10 1.10
Marcel Holtmann [Tue, 7 Aug 2012 06:15:26 +0000 (23:15 -0700)]
Release 1.10

11 years agotest: Add hangup-call script for GCF testing
Guillaume Zajac [Mon, 6 Aug 2012 15:42:36 +0000 (17:42 +0200)]
test: Add hangup-call script for GCF testing

11 years agotest: Add release-and-swap script
Denis Kenzior [Mon, 6 Aug 2012 04:32:01 +0000 (23:32 -0500)]
test: Add release-and-swap script

11 years agovoicecall: Implement ReleaseAndSwap
Denis Kenzior [Mon, 6 Aug 2012 04:31:05 +0000 (23:31 -0500)]
voicecall: Implement ReleaseAndSwap

11 years agodoc: Add ReleaseAndSwap
Denis Kenzior [Mon, 6 Aug 2012 04:29:54 +0000 (23:29 -0500)]
doc: Add ReleaseAndSwap

11 years agotest: Add hangup-multiparty script for GCF testing
Guillaume Zajac [Fri, 3 Aug 2012 14:50:01 +0000 (16:50 +0200)]
test: Add hangup-multiparty script for GCF testing