sandbox: Add test function to advance time
Add a function that maintains an offset to include in the system timer values returned from the lib/time.c APIs. This will allow timeouts to be skipped instantly in tests Signed-off-by: Joe Hershberger <joe.hershberger@ni.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
905e8f9e53
commit
909bd6d972
|
@ -45,11 +45,6 @@ void __udelay(unsigned long usec)
|
|||
os_usleep(usec);
|
||||
}
|
||||
|
||||
unsigned long __attribute__((no_instrument_function)) timer_get_us(void)
|
||||
{
|
||||
return os_get_nsec() / 1000;
|
||||
}
|
||||
|
||||
int cleanup_before_linux(void)
|
||||
{
|
||||
return 0;
|
||||
|
|
|
@ -28,4 +28,12 @@ void sandbox_i2c_eeprom_set_test_mode(struct udevice *dev,
|
|||
|
||||
void sandbox_i2c_eeprom_set_offset_len(struct udevice *dev, int offset_len);
|
||||
|
||||
/*
|
||||
* sandbox_timer_add_offset()
|
||||
*
|
||||
* Allow tests to add to the time reported through lib/time.c functions
|
||||
* offset: number of milliseconds to advance the system time
|
||||
*/
|
||||
void sandbox_timer_add_offset(unsigned long offset);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include <cros_ec.h>
|
||||
#include <dm.h>
|
||||
#include <os.h>
|
||||
#include <asm/test.h>
|
||||
#include <asm/u-boot-sandbox.h>
|
||||
|
||||
/*
|
||||
|
@ -25,9 +26,17 @@ void flush_cache(unsigned long start, unsigned long size)
|
|||
{
|
||||
}
|
||||
|
||||
/* system timer offset in ms */
|
||||
static unsigned long sandbox_timer_offset;
|
||||
|
||||
void sandbox_timer_add_offset(unsigned long offset)
|
||||
{
|
||||
sandbox_timer_offset += offset;
|
||||
}
|
||||
|
||||
unsigned long timer_read_counter(void)
|
||||
{
|
||||
return os_get_nsec() / 1000;
|
||||
return os_get_nsec() / 1000 + sandbox_timer_offset * 1000;
|
||||
}
|
||||
|
||||
int dram_init(void)
|
||||
|
|
Loading…
Reference in New Issue