fast magiclantern-Nightly.2018Feb17.70D112 build test
stubtest.log (Test complete, 12810 passed, 10 failed.)
[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x4238c0a8
[Pass] dst = fio_malloc(size) => 0x42b900b4
[Pass] memcmp(dst, src, 4097) => 0xffffffd8
[Pass] edmac_memcpy(dst, src, 4097) => 0x42b900b4
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42b900b4
[Pass] memcmp(dst, src, size) => 0xffffffb9
[Pass] edmac_memcpy(dst, src, size) => 0x42b900b4
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0x8
[Pass] edmac_memcpy_start(dst, src, size) => 0x42b900b4
dt => 0x16e6
[Pass] copied => 0x402000
[Pass] copied => 0x402000
[Pass] copied => 0x402000
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0xffffff9f
edmac_memcpy_finish()
free(src)
free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0x1268e8
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x1140
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0x104
[Pass] tries[1] => 0xf6
[Pass] tries[2] => 0xf1
[Pass] tries[3] => 0xfd
[Pass] failr[0] => 0x80
[Pass] failw[0] => 0xa4
[Pass] failr[1] => 0x63
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0x97
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
times[0] / tries[0] => 0x32
times[1] / tries[1] => 0x35
times[2] / tries[2] => 0x33
times[3] / tries[3] => 0x37
Cache tests finished.
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] wait_focus_status(1000, 3) => 0x0
[FAIL] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] wait_focus_status(1000, 3) => 0x0
[FAIL] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] wait_focus_status(1000, 3) => 0x0
[FAIL] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] wait_focus_status(1000, 3) => 0x0
[FAIL] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] wait_focus_status(1000, 3) => 0x0
[FAIL] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] f = FIO_CreateFile("test.dat") => 0x6
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
FIO_CloseFile(f)
[Pass] FIO_GetFileSize("test.dat", &size) => 0x0
[Pass] size => 0x20000
[Pass] p = (void*)_alloc_dma_memory(0x20000) => 0x40934338
[Pass] f = FIO_OpenFile("test.dat", O_RDONLY | O_SYNC) => 0x6
[Pass] FIO_ReadFile(f, p, 0x20000) => 0x20000
FIO_CloseFile(f)
_free_dma_memory(p)
[Pass] count => 0x3a98
[Pass] buf = fio_malloc(0x1000000) => 0x4238c0a8
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000000
[Pass] f = FIO_OpenFile("test.dat", O_RDWR | O_SYNC) => 0x6
[Pass] FIO_SeekSkipFile(f, 0, SEEK_END) => 0x82000000
[Pass] FIO_WriteFile(f, buf, 0x10) => 0x10
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_END) => 0x81fffff0
[Pass] FIO_WriteFile(f, buf, 0x30) => 0x30
[Pass] FIO_SeekSkipFile(f, 0x20, SEEK_SET) => 0x20
[Pass] FIO_SeekSkipFile(f, 0x30, SEEK_CUR) => 0x50
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_CUR) => 0x30
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000020
[Pass] is_file("test.dat") => 0x1
[Pass] FIO_RemoveFile("test.dat") => 0x0
[Pass] is_file("test.dat") => 0x0
[Pass] SetTimerAfter(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0xa446
msleep(900)
[Pass] timer_func => 0x0
msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0x7
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0xa488
msleep(400)
CancelTimer(timer)
[Pass] timer_func => 0x0
msleep(1500)
[Pass] timer_func => 0x0
[Pass] SetHPTimerAfterNow(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetHPTimerAfterNow(100000, timer_cbr, overrun_cbr, 0) => 0x2d56a
msleep(90)
[Pass] timer_func => 0x0
msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0xf7
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0xd6
[Pass] ABS((get_us_clock_value() - t0) - 110000) => 0xffffffa1
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0x2d56c
msleep(80)
[Pass] timer_func => 0x0
msleep(20)
[Pass] timer_func => 0x3
msleep(80)
[Pass] timer_func => 0x3
msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 300000) => 0x24
[Pass] ABS(DeltaT(timer_arg, ta0) - 300000) => 0x3
[Pass] ABS((get_us_clock_value() - t0) - 310000) => 0xffffffa7
t0 = *(uint32_t*)0xC0242014 => 0x7f260
msleep(250)
t1 = *(uint32_t*)0xC0242014 => 0xba69c
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0x8
LoadCalendarFromRTC( &now )
s0 = now.tm_sec => 0x8
Date/time: 2018/02/19 11:38:08
msleep(1500)
LoadCalendarFromRTC( &now )
s1 = now.tm_sec => 0x9
[Pass] MOD(s1-s0, 60) => 0x1
[Pass] MOD(s1-s0, 60) => 0x1
m0 = MALLOC_FREE_MEMORY => 0x37940
[Pass] p = (void*)_malloc(50*1024) => 0x128628
[Pass] CACHEABLE(p) => 0x128628
m1 = MALLOC_FREE_MEMORY => 0x2b130
_free(p)
m2 = MALLOC_FREE_MEMORY => 0x37940
[Pass] ABS((m0-m1) - 50*1024) => 0x10
[Pass] ABS(m0-m2) => 0x0
m0 = GetFreeMemForAllocateMemory() => 0x2578c0
[Pass] p = (void*)_AllocateMemory(128*1024) => 0x9342f8
[Pass] CACHEABLE(p) => 0x9342f8
m1 = GetFreeMemForAllocateMemory() => 0x2378b4
_FreeMemory(p)
m2 = GetFreeMemForAllocateMemory() => 0x2578c0
[Pass] ABS((m0-m1) - 128*1024) => 0xc
[Pass] ABS(m0-m2) => 0x0
m01 = MALLOC_FREE_MEMORY => 0x37940
m02 = GetFreeMemForAllocateMemory() => 0x2578c0
[Pass] p = (void*)_alloc_dma_memory(128*1024) => 0x40934338
[Pass] UNCACHEABLE(p) => 0x40934338
[Pass] CACHEABLE(p) => 0x934338
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x40934338
_free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(16*1024*1024) => 0x4238c098
[Pass] UNCACHEABLE(p) => 0x4238c098
_shoot_free(p)
m11 = MALLOC_FREE_MEMORY => 0x37940
m12 = GetFreeMemForAllocateMemory() => 0x257920
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x60
[Pass] suite = shoot_malloc_suite_contig(16*1024*1024) => 0x125340
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x125368
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4238c094
[Pass] UNCACHEABLE(p) => 0x4238c094
shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0x125340
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x2000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x125368
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x2000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48c00064
[Pass] UNCACHEABLE(p) => 0x48c00064
largest_shoot_block = suite->size => 0x2000000
[INFO] largest_shoot_block: 32MB
shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(largest_shoot_block + 1024*1024) => 0x125340
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x2
[Pass] suite->size => 0x2100000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x125368
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1f84000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4238c094
[Pass] UNCACHEABLE(p) => 0x4238c094
chunk = GetNextMemoryChunk(suite, chunk) => 0x1253c8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2100000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48c00064
[Pass] UNCACHEABLE(p) => 0x48c00064
chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x2100000
shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0x125340
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x14
[Pass] suite->size => 0xf700000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x125368
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1f84000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4238c094
[Pass] UNCACHEABLE(p) => 0x4238c094
chunk = GetNextMemoryChunk(suite, chunk) => 0x1253c8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3f84000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48c00064
[Pass] UNCACHEABLE(p) => 0x48c00064
chunk = GetNextMemoryChunk(suite, chunk) => 0x125400
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4298000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4ac00070
[Pass] UNCACHEABLE(p) => 0x4ac00070
chunk = GetNextMemoryChunk(suite, chunk) => 0x125438
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4380000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48b140e4
[Pass] UNCACHEABLE(p) => 0x48b140e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x125470
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4468000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x467140e4
[Pass] UNCACHEABLE(p) => 0x467140e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x1254a8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4550000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5c9140e4
[Pass] UNCACHEABLE(p) => 0x5c9140e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x1254e0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4638000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5a5140e4
[Pass] UNCACHEABLE(p) => 0x5a5140e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x125518
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4720000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x581140e4
[Pass] UNCACHEABLE(p) => 0x581140e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x125550
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4808000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4af140e4
[Pass] UNCACHEABLE(p) => 0x4af140e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x125588
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x48f0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x443140e4
[Pass] UNCACHEABLE(p) => 0x443140e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x1255c0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x68f0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x55e00064
[Pass] UNCACHEABLE(p) => 0x55e00064
chunk = GetNextMemoryChunk(suite, chunk) => 0x1255f8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x6c04000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x57e00070
[Pass] UNCACHEABLE(p) => 0x57e00070
chunk = GetNextMemoryChunk(suite, chunk) => 0x125630
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x8c04000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x58200064
[Pass] UNCACHEABLE(p) => 0x58200064
chunk = GetNextMemoryChunk(suite, chunk) => 0x125668
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x8f18000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5a200070
[Pass] UNCACHEABLE(p) => 0x5a200070
chunk = GetNextMemoryChunk(suite, chunk) => 0x1256a0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xaf18000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5a600064
[Pass] UNCACHEABLE(p) => 0x5a600064
chunk = GetNextMemoryChunk(suite, chunk) => 0x1256d8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xb22c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5c600070
[Pass] UNCACHEABLE(p) => 0x5c600070
chunk = GetNextMemoryChunk(suite, chunk) => 0x125710
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xd22c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x44400064
[Pass] UNCACHEABLE(p) => 0x44400064
chunk = GetNextMemoryChunk(suite, chunk) => 0x125748
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xd540000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x46400070
[Pass] UNCACHEABLE(p) => 0x46400070
chunk = GetNextMemoryChunk(suite, chunk) => 0x125780
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xf540000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x46800064
[Pass] UNCACHEABLE(p) => 0x46800064
chunk = GetNextMemoryChunk(suite, chunk) => 0x1257b8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xf700000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48800070
[Pass] UNCACHEABLE(p) => 0x48800070
chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0xf700000
shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] strlen("abc") => 0x3
[Pass] strlen("qwertyuiop") => 0xa
[Pass] strlen("") => 0x0
[Pass] strcpy(msg, "hi there") => 0x1ebeb4
[Pass] msg => 'hi there'
[Pass] snprintf(a, sizeof(a), "foo") => 0x3
[Pass] snprintf(b, sizeof(b), "foo") => 0x3
[Pass] strcmp(a, b) => 0x0
[Pass] snprintf(a, sizeof(a), "bar") => 0x3
[Pass] snprintf(b, sizeof(b), "baz") => 0x3
[Pass] strcmp(a, b) => 0xfffffff8
[Pass] snprintf(a, sizeof(a), "Display") => 0x7
[Pass] snprintf(b, sizeof(b), "Defishing") => 0x9
[Pass] strcmp(a, b) => 0x4
[Pass] snprintf(buf, 3, "%d", 1234) => 0x2
[Pass] buf => '12'
[Pass] memcpy(foo, bar, 6) => 0x1ebe80
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x1ebe60
[Pass] bar => '*****hjkl;'
bzero32(bar + 5, 5)
[Pass] bar => '****'
EngDrvOut(LCD_Palette[0], 0x1234)
[Pass] shamem_read(LCD_Palette[0]) => 0x1234
call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
call("TurnOffDisplay")
[Pass] DISPLAY_IS_ON => 0x0
call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
task_create("test", 0x1c, 0x1000, test_task, 0) => 0xde2200ee
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] get_task_name_from_id(current_task->taskId) => 'run_test'
[Pass] task_max => 0x84
[Pass] task_max => 0x84
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0xde2400c6
[Pass] msg_queue_post(mq, 0x1234567) => 0x0
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x0
[Pass] m => 0x1234567
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x9
[Pass] sem = sem ? sem : create_named_semaphore("test", 1) => 0xde2602bc
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] take_semaphore(sem, 500) => 0x9
[Pass] give_semaphore(sem) => 0x0
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] give_semaphore(sem) => 0x0
[Pass] rlock = rlock ? rlock : CreateRecursiveLock(0) => 0xde2800b0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0xf
SetGUIRequestMode(1); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x1
SetGUIRequestMode(2); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x2
SetGUIRequestMode(0); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x0
[Pass] display_idle() => 0x1
GUI_Control(BGMT_PLAY, 0, 0, 0); msleep(1000);
[Pass] PLAY_MODE => 0x1
[Pass] MENU_MODE => 0x0
GUI_Control(BGMT_MENU, 0, 0, 0); msleep(1000);
[Pass] MENU_MODE => 0x1
[Pass] PLAY_MODE => 0x0
[Pass] dialog->type => 'DIALOG'
GUI_Control(BGMT_MENU, 0, 0, 0); msleep(500);
[Pass] MENU_MODE => 0x0
[Pass] PLAY_MODE => 0x0
SW1(1,100)
[Pass] HALFSHUTTER_PRESSED => 0x1
SW1(0,100)
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x1
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x1
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
=========================================================
Test complete, 12810 passed, 10 failed.
.
luatest.log (no errors)
===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-2-19 11:40:19
===============================================================================
Strict mode tests...
Strict mode tests passed.
Generic tests...
arg = table:
[0] = "API_TEST.LUA"
camera = table:
shutter = table:
raw = 0
apex = -7.
ms = 0
value = 0
aperture = table:
raw = 35
apex = 3.375
value = 3.2
min = table:
raw = 22
apex = 1.75
value = 1.8
max = table:
raw = 80
apex = 9.
value = 22.6
iso = table:
raw = 0
apex = 0
value = 0
ec = table:
raw = 0
value = 0
flash_ec = table:
raw = 0
value = 0
kelvin = 6400
mode = 2
metering_mode = 3
drive_mode = 19
model = "Canon EOS 70D"
model_short = "70D"
firmware = "1.1.2"
temperature = 161
gui = table:
menu = false
play = false
play_photo = false
play_movie = false
qr = false
idle = true
reboot = function: p
wait = function: p
burst = function: p
bulb = function: p
shoot = function: p
event = table:
pre_shoot = nil
post_shoot = nil
shoot_task = nil
seconds_clock = nil
keypress = nil
custom_picture_taking = nil
intervalometer = nil
config_save = nil
console = table:
write = function: p
hide = function: p
clear = function: p
show = function: p
lv = table:
enabled = false
paused = false
running = false
zoom = 1
overlays = false
pause = function: p
wait = function: p
start = function: p
resume = function: p
info = function: p
stop = function: p
lens = table:
name = "EF50mm f/1.8 STM"
focal_length = 50
focus_distance = 655350
hyperfocal = 41218
dof_near = 38790
dof_far = 1000000
af = true
af_mode = 0
autofocus = function: p
focus = function: p
display = table:
idle = nil
height = 480
width = 720
off = function: p
rect = function: p
line = function: p
print = function: p
on = function: p
notify_box = function: p
screenshot = function: p
draw = function: p
pixel = function: p
circle = function: p
load = function: p
clear = function: p
key = table:
last = 10
wait = function: p
press = function: p
menu = table:
visible = false
close = function: p
set = function: p
new = function: p
open = function: p
block = function: p
get = function: p
select = function: p
movie = table:
recording = false
stop = function: p
start = function: p
dryos = table:
clock = 22
ms_clock = 23010
image_prefix = "IMG_"
dcim_dir = table:
exists = true
create = function: p
children = function: p
files = function: p
parent = table:
exists = true
create = function: p
children = function: p
files = function: p
parent = table:
exists = true
create = function: p
children = function: p
files = function: p
parent = nil
path = "B:/"
path = "B:/DCIM/"
path = "B:/DCIM/100CANON/"
config_dir = table:
exists = true
create = function: p
children = function: p
files = function: p
parent = table:
exists = true
create = function: p
children = function: p
files = function: p
parent = table:
exists = true
create = function: p
children = function: p
files = function: p
parent = nil
path = "B:/"
path = "ML/"
path = "ML/SETTINGS/"
ml_card = table:
cluster_size = 32768
drive_letter = "B"
file_number = 4848
folder_number = 100
free_space = 10832864
type = "SD"
_card_ptr = userdata
path = "B:/"
shooting_card = table:
cluster_size = 32768
drive_letter = "B"
file_number = 4848
folder_number = 100
free_space = 10832864
type = "SD"
_card_ptr = userdata
path = "B:/"
date = table:
year = 2018
day = 19
wday = 2
min = 40
sec = 21
hour = 11
yday = 50
isdst = false
month = 2
remove = function: p
rename = function: p
directory = function: p
call = function: p
interval = table:
time = 10
count = 0
running = false
stop = function: p
battery = table:
level = 58
id = 1
performance = 0
time = nil
drain_rate = 21
task = table:
create = function: p
yield = function: p
property = table:
Generic tests completed.
Module tests...
Testing file I/O...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt
Append test OK
Rename test: apple.txt -> banana.txt
Rename test OK
Rename test: apple.txt -> ML/banana.txt
Rename test OK
File I/O tests completed.
Testing Canon GUI functions...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Start LiveView...
Enter MENU mode...
Exit MENU mode...
Enter PLAY mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Enter MENU mode...
Exit MENU mode...
Pause LiveView...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Stop LiveView...
Enter PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Start LiveView...
Pause LiveView...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Stop LiveView...
Enter PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Start LiveView...
Enter PLAY mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Stop LiveView...
Start LiveView...
Enter PLAY mode...
Enter PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Pause LiveView...
Enter PLAY mode...
Enter PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Pause LiveView...
Enter MENU mode...
Exit MENU mode...
Enter MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Pause LiveView...
Resume LiveView...
Pause LiveView...
Resume LiveView...
Enter PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Pause LiveView...
Enter MENU mode...
Exit MENU mode...
Pause LiveView...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Pause LiveView...
Enter MENU mode...
Canon GUI tests completed.
Testing ML menu API...
Menu tests completed.
Testing picture taking functions...
Please switch to M mode.
Snap simulation test...
Single picture...
B:/DCIM/100CANON/IMG_4849.CR2: 24961243
B:/DCIM/100CANON/IMG_4849.JPG not found.
Two burst pictures...
Ideally, the camera should be in some continuous shooting mode (not checked).
B:/DCIM/100CANON/ABC_4850.CR2: 24978453
B:/DCIM/100CANON/ABC_4850.JPG not found.
B:/DCIM/100CANON/ABC_4851.CR2: 25012699
B:/DCIM/100CANON/ABC_4851.JPG not found.
Bracketed pictures...
B:/DCIM/100CANON/IMG_4852.CR2: 32302711
B:/DCIM/100CANON/IMG_4852.JPG not found.
B:/DCIM/100CANON/IMG_4853.CR2: 24982746
B:/DCIM/100CANON/IMG_4853.JPG not found.
B:/DCIM/100CANON/IMG_4854.CR2: 14768124
B:/DCIM/100CANON/IMG_4854.JPG not found.
Bulb picture...
Elapsed time: 13240
B:/DCIM/100CANON/IMG_4855.CR2: 14472832
B:/DCIM/100CANON/IMG_4855.JPG not found.
Picture taking tests completed.
Testing multitasking...
Only one task allowed to interrupt...
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Multitasking tests completed.
Testing half-shutter...
Half-shutter test OK.
Testing module 'lv'...
LiveView is running; stopping...
Starting LiveView...
Overlays: Canon
Overlays: Canon
Overlays: Canon
Overlays: ML
Overlays: ML
Overlays: disabled
Overlays: Canon
Overlays: Canon
Overlays: Canon
Overlays: Canon
Overlays: disabled
Overlays: ML
Overlays: disabled
Overlays: Canon
Overlays: Canon
Setting zoom to x1...
Setting zoom to x5...
Setting zoom to x10...
Setting zoom to x5...
Setting zoom to x1...
Setting zoom to x10...
Setting zoom to x1...
Pausing LiveView...
Resuming LiveView...
Stopping LiveView...
LiveView tests completed.
Testing lens focus functionality...
Autofocus outside LiveView...
Focus distance: 655350
Autofocus in LiveView...
Please trigger autofocus (half-shutter / AF-ON / * ).
19...18...17...16...Autofocus triggered.
Autofocus completed.
Focus distance: 655350
Focusing backward...
Focus distance: 655350
Focus motor position: 3094
Focusing forward with step size 3, wait=true...
.........................
Focus distance: 340
Focus motor position: 278
Focusing backward with step size 3, wait=true...
.........................
Focus distance: 655350
Focus motor position: 3094
Focus range: 25 steps forward, 25 steps backward.
Motor steps: 2816 forward, 2816 backward, 0 lost.
Focusing forward with step size 3, wait=false...
..........................................................
Focus distance: 340
Focus motor position: 278
Focusing backward with step size 3, wait=false...
.........................................................
Focus distance: 655350
Focus motor position: 3094
Focus range: 58 steps forward, 57 steps backward.
Motor steps: 2816 forward, 2816 backward, 0 lost.
Focusing forward with step size 2, wait=true...
...
Focus distance: 370
Focus motor position: 534
Focusing backward with step size 2, wait=true...
...
Focus distance: 655350
Focus motor position: 3094
Focus range: 164 steps forward, 164 steps backward.
Motor steps: 2560 forward, 2560 backward, 0 lost.
Focusing forward with step size 2, wait=false...
...
Focus distance: 340
Focus motor position: 278
Focusing backward with step size 2, wait=false...
...
Focus distance: 655350
Focus motor position: 3094
Focus range: 185 steps forward, 188 steps backward.
Motor steps: 2816 forward, 2816 backward, 0 lost.
Focusing forward with step size 1, wait=true...
...
Focus distance: 340
Focus motor position: 278
Focusing backward with step size 1, wait=true...
...
Focus distance: 655350
Focus motor position: 3094
Focus range: 1061 steps forward, 1062 steps backward.
Motor steps: 2816 forward, 2816 backward, 0 lost.
Focusing forward with step size 1, wait=false...
...
Focus distance: 340
Focus motor position: 278
Focusing backward with step size 1, wait=false...
...
Focus distance: 655350
Focus motor position: 3094
Focus range: 1061 steps forward, 1059 steps backward.
Motor steps: 2816 forward, 2816 backward, 0 lost.
Focus test completed.
Testing exposure settings...
Camera : Canon EOS 70D (70D) 1.1.2
Lens : EF50mm f/1.8 STM
Shoot mode: 3
Shutter : ‚5 (raw 75, 0.192776s, 193ms, apex 2.375)
Aperture : 4.9 (raw 45, f/4.9, apex 4.625)
Av range : 1.8..22 (raw 22..80, f/1.8..f/22.6, apex 1.75..9.)
ISO : €1600 (raw 104, 1600, apex 9.)
EC : 0.0 (raw 0, 0 EV)
Flash EC : 0.0 (raw 0, 0 EV)
Setting shutter to random values...
Setting ISO to random values...
Setting aperture to random values...
Please switch to Av mode.
Setting EC to random values...
Setting Flash EC to random values...
Exposure tests completed.
Testing movie recording...
Please switch to Movie mode.
Movie recording tests completed.
Done!
edit:
in memory benchmark it stops on memcpy cacheable (verifying) and red led shines