Move utest global serial object into a function.

That way it is not a global object anymore and is not attached to the
.init section and init array. If the function which contain the object is
not called then the serial object will not be present in the final binary.
pull/2559/head
Vincent Coubard 2016-08-26 11:56:11 +01:00
parent 9111aa4c2d
commit acc3115e27
1 changed files with 25 additions and 17 deletions

View File

@ -20,7 +20,6 @@
#include <string.h>
#include "mbed.h"
#include "greentea-client/test_env.h"
#include "greentea-client/greentea_serial.h"
/**
@ -58,6 +57,15 @@ static void greentea_notify_hosttest(const char *);
static void greentea_notify_completion(const int);
static void greentea_notify_version();
/**
* Rawserial object used to provide direct, raw serial communications
* between the target and the host.
*/
RawSerial& greentea_serial() {
RawSerial serial(USBTX, USBRX);
return serial;
}
/** \brief Handshake with host and send setup data (timeout and host test name)
* \details This function will send preamble to master.
* After host test name is received master will invoke host test script
@ -187,8 +195,8 @@ void greentea_notify_coverage_end() {
*/
inline void greentea_write_preamble()
{
greentea_serial->putc('{');
greentea_serial->putc('{');
greentea_serial().putc('{');
greentea_serial().putc('{');
}
/**
@ -205,9 +213,9 @@ inline void greentea_write_preamble()
*/
inline void greentea_write_postamble()
{
greentea_serial->putc('}');
greentea_serial->putc('}');
greentea_serial->putc('\n');
greentea_serial().putc('}');
greentea_serial().putc('}');
greentea_serial().putc('\n');
}
/**
@ -223,7 +231,7 @@ inline void greentea_write_postamble()
inline void greentea_write_string(const char *str)
{
while (*str != '\0') {
greentea_serial->putc(*str);
greentea_serial().putc(*str);
str ++;
}
}
@ -249,7 +257,7 @@ inline void greentea_write_int(const int val)
unsigned int i = 0;
sprintf(intval, "%d", val);
while (intval[i] != '\0') {
greentea_serial->putc(intval[i]);
greentea_serial().putc(intval[i]);
i++;
}
}
@ -269,7 +277,7 @@ void greentea_send_kv(const char *key, const char *val) {
if (key && val) {
greentea_write_preamble();
greentea_write_string(key);
greentea_serial->putc(';');
greentea_serial().putc(';');
greentea_write_string(val);
greentea_write_postamble();
}
@ -292,7 +300,7 @@ void greentea_send_kv(const char *key, const int val) {
if (key) {
greentea_write_preamble();
greentea_write_string(key);
greentea_serial->putc(';');
greentea_serial().putc(';');
greentea_write_int(val);
greentea_write_postamble();
}
@ -316,9 +324,9 @@ void greentea_send_kv(const char *key, const char *val, const int result) {
if (key) {
greentea_write_preamble();
greentea_write_string(key);
greentea_serial->putc(';');
greentea_serial().putc(';');
greentea_write_string(val);
greentea_serial->putc(';');
greentea_serial().putc(';');
greentea_write_int(result);
greentea_write_postamble();
@ -349,11 +357,11 @@ void greentea_send_kv(const char *key, const char *val, const int passes, const
if (key) {
greentea_write_preamble();
greentea_write_string(key);
greentea_serial->putc(';');
greentea_serial().putc(';');
greentea_write_string(val);
greentea_serial->putc(';');
greentea_serial().putc(';');
greentea_write_int(passes);
greentea_serial->putc(';');
greentea_serial().putc(';');
greentea_write_int(failures);
greentea_write_postamble();
}
@ -382,9 +390,9 @@ void greentea_send_kv(const char *key, const int passes, const int failures) {
if (key) {
greentea_write_preamble();
greentea_write_string(key);
greentea_serial->putc(';');
greentea_serial().putc(';');
greentea_write_int(passes);
greentea_serial->putc(';');
greentea_serial().putc(';');
greentea_write_int(failures);
greentea_write_postamble();
}