mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Merge pull request #2455 from bridadan/share-greentea-serial-in-frameworks
Sharing greentea-client's RawSerial with utest and UNITY.pull/2546/merge
						commit
						a7c7ceda0e
					
				| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
#ifndef GREENTEA_SERIAL_H
 | 
			
		||||
#define GREENTEA_SERIAL_H
 | 
			
		||||
 | 
			
		||||
#include "RawSerial.h"
 | 
			
		||||
#include "SingletonPtr.h"
 | 
			
		||||
 | 
			
		||||
class GreenteaSerial : public mbed::RawSerial {
 | 
			
		||||
public:
 | 
			
		||||
    GreenteaSerial();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern SingletonPtr<GreenteaSerial> greentea_serial;
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
#include "greentea-client/greentea_serial.h"
 | 
			
		||||
 | 
			
		||||
SingletonPtr<GreenteaSerial> greentea_serial;
 | 
			
		||||
 | 
			
		||||
GreenteaSerial::GreenteaSerial() : mbed::RawSerial(USBTX, USBRX) {};
 | 
			
		||||
| 
						 | 
				
			
			@ -20,6 +20,7 @@
 | 
			
		|||
#include <string.h>
 | 
			
		||||
#include "mbed.h"
 | 
			
		||||
#include "greentea-client/test_env.h"
 | 
			
		||||
#include "greentea-client/greentea_serial.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -57,13 +58,6 @@ 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(USBTX, USBRX); 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/** \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
 | 
			
		||||
| 
						 | 
				
			
			@ -193,8 +187,8 @@ void greentea_notify_coverage_end() {
 | 
			
		|||
 */
 | 
			
		||||
inline void greentea_write_preamble()
 | 
			
		||||
{
 | 
			
		||||
    greentea_serial.putc('{');
 | 
			
		||||
    greentea_serial.putc('{');
 | 
			
		||||
    greentea_serial->putc('{');
 | 
			
		||||
    greentea_serial->putc('{');
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -211,9 +205,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');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -229,7 +223,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 ++;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -255,7 +249,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++;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -275,7 +269,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();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -298,7 +292,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();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -322,9 +316,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();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -355,11 +349,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();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -388,9 +382,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();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,7 +19,7 @@
 | 
			
		|||
#include "utest/utest_harness.h"
 | 
			
		||||
#include "utest/utest_stack_trace.h"
 | 
			
		||||
#include "utest/unity_handler.h"
 | 
			
		||||
#include "utest/utest_serial.h"
 | 
			
		||||
#include "greentea-client/greentea_serial.h"
 | 
			
		||||
 | 
			
		||||
void utest_unity_assert_failure(void)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -35,7 +35,7 @@ void utest_unity_ignore_failure(void)
 | 
			
		|||
 | 
			
		||||
void utest_safe_putc(int chr)
 | 
			
		||||
{
 | 
			
		||||
    utest_serial.putc(chr);
 | 
			
		||||
    greentea_serial->putc(chr);
 | 
			
		||||
}    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
/****************************************************************************
 | 
			
		||||
 * Copyright (c) 2015, ARM Limited, All Rights Reserved
 | 
			
		||||
 * SPDX-License-Identifier: Apache-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License"); you may
 | 
			
		||||
 * not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 ****************************************************************************
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "utest/utest_serial.h"
 | 
			
		||||
 | 
			
		||||
RawSerial utest_serial(USBTX, USBRX);
 | 
			
		||||
 | 
			
		||||
void utest_safe_putc(int chr)
 | 
			
		||||
{
 | 
			
		||||
    utest_serial.putc(chr);
 | 
			
		||||
}    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -19,10 +19,8 @@
 | 
			
		|||
#ifndef UTEST_SERIAL_H
 | 
			
		||||
#define UTEST_SERIAL_H
 | 
			
		||||
 | 
			
		||||
#include "mbed.h"
 | 
			
		||||
#include "greentea-client/greentea_serial.h"
 | 
			
		||||
 | 
			
		||||
extern RawSerial utest_serial;
 | 
			
		||||
 | 
			
		||||
#define utest_printf(...) utest_serial.printf(__VA_ARGS__)
 | 
			
		||||
#define utest_printf(...) greentea_serial->printf(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
#endif // UTEST_SERIAL_H
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,6 +23,7 @@
 | 
			
		|||
#include <stdbool.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include "utest/utest_shim.h"
 | 
			
		||||
#include "SingletonPtr.h"
 | 
			
		||||
 | 
			
		||||
namespace utest {
 | 
			
		||||
namespace v1 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue