Skip to content

Commit a7c7ced

Browse files
authored
Merge pull request #2455 from bridadan/share-greentea-serial-in-frameworks
Sharing greentea-client's RawSerial with utest and UNITY.
2 parents a48a6f7 + f334bd7 commit a7c7ced

File tree

7 files changed

+40
-57
lines changed

7 files changed

+40
-57
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#ifndef GREENTEA_SERIAL_H
2+
#define GREENTEA_SERIAL_H
3+
4+
#include "RawSerial.h"
5+
#include "SingletonPtr.h"
6+
7+
class GreenteaSerial : public mbed::RawSerial {
8+
public:
9+
GreenteaSerial();
10+
};
11+
12+
extern SingletonPtr<GreenteaSerial> greentea_serial;
13+
#endif
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#include "greentea-client/greentea_serial.h"
2+
3+
SingletonPtr<GreenteaSerial> greentea_serial;
4+
5+
GreenteaSerial::GreenteaSerial() : mbed::RawSerial(USBTX, USBRX) {};

features/frameworks/greentea-client/source/test_env.cpp

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <string.h>
2121
#include "mbed.h"
2222
#include "greentea-client/test_env.h"
23+
#include "greentea-client/greentea_serial.h"
2324

2425

2526
/**
@@ -57,13 +58,6 @@ static void greentea_notify_hosttest(const char *);
5758
static void greentea_notify_completion(const int);
5859
static void greentea_notify_version();
5960

60-
/**
61-
* Rawserial object used to provide direct, raw serial communications
62-
* between the target and the host.
63-
*/
64-
RawSerial greentea_serial(USBTX, USBRX);
65-
66-
6761
/** \brief Handshake with host and send setup data (timeout and host test name)
6862
* \details This function will send preamble to master.
6963
* After host test name is received master will invoke host test script
@@ -193,8 +187,8 @@ void greentea_notify_coverage_end() {
193187
*/
194188
inline void greentea_write_preamble()
195189
{
196-
greentea_serial.putc('{');
197-
greentea_serial.putc('{');
190+
greentea_serial->putc('{');
191+
greentea_serial->putc('{');
198192
}
199193

200194
/**
@@ -211,9 +205,9 @@ inline void greentea_write_preamble()
211205
*/
212206
inline void greentea_write_postamble()
213207
{
214-
greentea_serial.putc('}');
215-
greentea_serial.putc('}');
216-
greentea_serial.putc('\n');
208+
greentea_serial->putc('}');
209+
greentea_serial->putc('}');
210+
greentea_serial->putc('\n');
217211
}
218212

219213
/**
@@ -229,7 +223,7 @@ inline void greentea_write_postamble()
229223
inline void greentea_write_string(const char *str)
230224
{
231225
while (*str != '\0') {
232-
greentea_serial.putc(*str);
226+
greentea_serial->putc(*str);
233227
str ++;
234228
}
235229
}
@@ -255,7 +249,7 @@ inline void greentea_write_int(const int val)
255249
unsigned int i = 0;
256250
sprintf(intval, "%d", val);
257251
while (intval[i] != '\0') {
258-
greentea_serial.putc(intval[i]);
252+
greentea_serial->putc(intval[i]);
259253
i++;
260254
}
261255
}
@@ -275,7 +269,7 @@ void greentea_send_kv(const char *key, const char *val) {
275269
if (key && val) {
276270
greentea_write_preamble();
277271
greentea_write_string(key);
278-
greentea_serial.putc(';');
272+
greentea_serial->putc(';');
279273
greentea_write_string(val);
280274
greentea_write_postamble();
281275
}
@@ -298,7 +292,7 @@ void greentea_send_kv(const char *key, const int val) {
298292
if (key) {
299293
greentea_write_preamble();
300294
greentea_write_string(key);
301-
greentea_serial.putc(';');
295+
greentea_serial->putc(';');
302296
greentea_write_int(val);
303297
greentea_write_postamble();
304298
}
@@ -322,9 +316,9 @@ void greentea_send_kv(const char *key, const char *val, const int result) {
322316
if (key) {
323317
greentea_write_preamble();
324318
greentea_write_string(key);
325-
greentea_serial.putc(';');
319+
greentea_serial->putc(';');
326320
greentea_write_string(val);
327-
greentea_serial.putc(';');
321+
greentea_serial->putc(';');
328322
greentea_write_int(result);
329323
greentea_write_postamble();
330324

@@ -355,11 +349,11 @@ void greentea_send_kv(const char *key, const char *val, const int passes, const
355349
if (key) {
356350
greentea_write_preamble();
357351
greentea_write_string(key);
358-
greentea_serial.putc(';');
352+
greentea_serial->putc(';');
359353
greentea_write_string(val);
360-
greentea_serial.putc(';');
354+
greentea_serial->putc(';');
361355
greentea_write_int(passes);
362-
greentea_serial.putc(';');
356+
greentea_serial->putc(';');
363357
greentea_write_int(failures);
364358
greentea_write_postamble();
365359
}
@@ -388,9 +382,9 @@ void greentea_send_kv(const char *key, const int passes, const int failures) {
388382
if (key) {
389383
greentea_write_preamble();
390384
greentea_write_string(key);
391-
greentea_serial.putc(';');
385+
greentea_serial->putc(';');
392386
greentea_write_int(passes);
393-
greentea_serial.putc(';');
387+
greentea_serial->putc(';');
394388
greentea_write_int(failures);
395389
greentea_write_postamble();
396390
}

features/frameworks/utest/source/unity_handler.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#include "utest/utest_harness.h"
2020
#include "utest/utest_stack_trace.h"
2121
#include "utest/unity_handler.h"
22-
#include "utest/utest_serial.h"
22+
#include "greentea-client/greentea_serial.h"
2323

2424
void utest_unity_assert_failure(void)
2525
{
@@ -35,7 +35,7 @@ void utest_unity_ignore_failure(void)
3535

3636
void utest_safe_putc(int chr)
3737
{
38-
utest_serial.putc(chr);
38+
greentea_serial->putc(chr);
3939
}
4040

4141

features/frameworks/utest/source/utest_serial.cpp

Lines changed: 0 additions & 28 deletions
This file was deleted.

features/frameworks/utest/utest/utest_serial.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@
1919
#ifndef UTEST_SERIAL_H
2020
#define UTEST_SERIAL_H
2121

22-
#include "mbed.h"
22+
#include "greentea-client/greentea_serial.h"
2323

24-
extern RawSerial utest_serial;
25-
26-
#define utest_printf(...) utest_serial.printf(__VA_ARGS__)
24+
#define utest_printf(...) greentea_serial->printf(__VA_ARGS__)
2725

2826
#endif // UTEST_SERIAL_H

features/frameworks/utest/utest/utest_types.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <stdbool.h>
2424
#include <stdio.h>
2525
#include "utest/utest_shim.h"
26+
#include "SingletonPtr.h"
2627

2728
namespace utest {
2829
namespace v1 {

0 commit comments

Comments
 (0)