1
Camera-specific Development / Re: Canon 6D
« on: May 22, 2018, 07:22:28 PM »...
Looking for testers to try out the "Nightly" build and see if it works the same as the 6D.116 from the official downloads page. Then run the selftest module and lua module API stubs tests and report back.
Note that this is an early test build so no ML-SETUP.FIR yet. You'll have to make sure ML is installed and running before doing the firmware update so the bootflags on both camera and card are set. I put a "6D Canon Firmware for Testers" package on my downloads page so you don't have to go searching for the Canon firmware updaters.
I finally had some time and tried the test version, i picked the "magiclantern-Nightly.2018May03.6D118" as it is sligthly newer than "test_build.2018May03.6D118.zip" (according to the timestamps inside the zip.)
I ran the following tests (i hope those are the correct ones):
- Selftests - Stubs API test
- Selftests - Quick test (around 15 min)
- LUA - Script API tests
i attached the logs for both API tests, the quick test did not generate a log file but completed fine. The selftest API test contains some [FAIL] while trying to allocate some memory
But i also encountered some weird stuff outside the tests:
- Entering Liveview in Photo mode crashes the camera, the liveview freezes and there is no reaction to any of the buttons, after a short while the shoulder display just shows "Err" and there is no crash log on the SD card
Taking Photos in Moviemode works
The LUA API test is able to enter Liveview in Photomode, however after it finished i went into the magic lantern menu with the trash button and exited again back into liveview in photo mode and the camera crashed instantly
- Every time i start recording a movie i get the "Sound disabled" notification no matter if sound recording is set to manual oder automatic (i did not try an external mic)
Stub test
Code: [Select]
[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x42000088
[Pass] dst = fio_malloc(size) => 0x42804094
[Pass] memcmp(dst, src, 4097) => 0x2
[Pass] edmac_memcpy(dst, src, 4097) => 0x42804094
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42804094
[Pass] memcmp(dst, src, size) => 0xffffffde
[Pass] edmac_memcpy(dst, src, size) => 0x42804094
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0xffffff8f
[Pass] edmac_memcpy_start(dst, src, size) => 0x42804094
dt => 0x17e2
[Pass] copied => 0x4014ec
[Pass] copied => 0x4014ec
[Pass] copied => 0x4014ec
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0xffffffc7
edmac_memcpy_finish()
free(src)
free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0x1515c0
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x620
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0xec
[Pass] tries[1] => 0xfa
[Pass] tries[2] => 0x102
[Pass] tries[3] => 0x100
[Pass] failr[0] => 0x48
[Pass] failw[0] => 0x6e
[Pass] failr[1] => 0x51
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0x7c
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
times[0] / tries[0] => 0x38
times[1] / tries[1] => 0x37
times[2] / tries[2] => 0x3d
times[3] / tries[3] => 0x3d
Cache tests finished.
[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) => 0x4089a804
[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) => 0x42000088
[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) => 0x7abe
msleep(900)
[Pass] timer_func => 0x0
msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0x5
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x7ac0
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) => 0x2f79e
msleep(90)
[Pass] timer_func => 0x0
msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0xe4
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0xc2
[Pass] ABS((get_us_clock_value() - t0) - 110000) => 0xcb
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0x2f7a0
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) => 0x144
[Pass] ABS(DeltaT(timer_arg, ta0) - 300000) => 0x123
[Pass] ABS((get_us_clock_value() - t0) - 310000) => 0xb6
t0 = *(uint32_t*)0xC0242014 => 0x1c067
msleep(250)
t1 = *(uint32_t*)0xC0242014 => 0x58622
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0x3
LoadCalendarFromRTC( &now )
s0 = now.tm_sec => 0x39
Date/time: 2018/05/22 18:34:57
msleep(1500)
LoadCalendarFromRTC( &now )
s1 = now.tm_sec => 0x3a
[Pass] MOD(s1-s0, 60) => 0x1
[Pass] MOD(s1-s0, 60) => 0x1
m0 = MALLOC_FREE_MEMORY => 0x10600
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[Pass] CACHEABLE(p) => 0x0
m1 = MALLOC_FREE_MEMORY => 0x10600
_free(p)
m2 = MALLOC_FREE_MEMORY => 0x10600
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[Pass] ABS(m0-m2) => 0x0
m0 = GetFreeMemForAllocateMemory() => 0x121c1c
[Pass] p = (void*)_AllocateMemory(256*1024) => 0x89a7c4
[Pass] CACHEABLE(p) => 0x89a7c4
m1 = GetFreeMemForAllocateMemory() => 0xe1c10
_FreeMemory(p)
m2 = GetFreeMemForAllocateMemory() => 0x121c1c
[Pass] ABS((m0-m1) - 256*1024) => 0xc
[Pass] ABS(m0-m2) => 0x0
m01 = MALLOC_FREE_MEMORY => 0x10600
m02 = GetFreeMemForAllocateMemory() => 0x121c1c
[Pass] p = (void*)_alloc_dma_memory(256*1024) => 0x4089a804
[Pass] UNCACHEABLE(p) => 0x4089a804
[Pass] CACHEABLE(p) => 0x89a804
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x4089a804
_free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(24*1024*1024) => 0x42000068
[Pass] UNCACHEABLE(p) => 0x42000068
_shoot_free(p)
m11 = MALLOC_FREE_MEMORY => 0x10600
m12 = GetFreeMemForAllocateMemory() => 0x121c1c
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[Pass] suite = shoot_malloc_suite_contig(24*1024*1024) => 0x109478
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1800000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x109528
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1800000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0x109478
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x2000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x109528
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x2000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(64*1024*1024) => 0x109478
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0xb
[Pass] suite->size => 0x4000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x109528
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x298000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5ce10094
[Pass] UNCACHEABLE(p) => 0x5ce10094
chunk = GetNextMemoryChunk(suite, chunk) => 0x10a140
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2298000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
chunk = GetNextMemoryChunk(suite, chunk) => 0x10a4f8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2534000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x44000070
[Pass] UNCACHEABLE(p) => 0x44000070
chunk = GetNextMemoryChunk(suite, chunk) => 0x10af80
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2694000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5c89c0e4
[Pass] UNCACHEABLE(p) => 0x5c89c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x10b9f0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x27f4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5a49c0e4
[Pass] UNCACHEABLE(p) => 0x5a49c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x10ed80
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2954000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5809c0e4
[Pass] UNCACHEABLE(p) => 0x5809c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x10f3a0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2ab4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4ae9c0e4
[Pass] UNCACHEABLE(p) => 0x4ae9c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x10fad0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2c14000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48a9c0e4
[Pass] UNCACHEABLE(p) => 0x48a9c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x10fd70
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2d74000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4669c0e4
[Pass] UNCACHEABLE(p) => 0x4669c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x1100d8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2ed4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4429c0e4
[Pass] UNCACHEABLE(p) => 0x4429c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x1103e8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x44400064
[Pass] UNCACHEABLE(p) => 0x44400064
chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4000000
shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0x109478
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x15
[Pass] suite->size => 0xfb00000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x109528
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x298000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5ce10094
[Pass] UNCACHEABLE(p) => 0x5ce10094
chunk = GetNextMemoryChunk(suite, chunk) => 0x10a140
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2298000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
chunk = GetNextMemoryChunk(suite, chunk) => 0x10a4f8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2534000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x44000070
[Pass] UNCACHEABLE(p) => 0x44000070
chunk = GetNextMemoryChunk(suite, chunk) => 0x10af80
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2694000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5c89c0e4
[Pass] UNCACHEABLE(p) => 0x5c89c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x10b9f0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x27f4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5a49c0e4
[Pass] UNCACHEABLE(p) => 0x5a49c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x10ed80
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2954000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5809c0e4
[Pass] UNCACHEABLE(p) => 0x5809c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x10f3a0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2ab4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4ae9c0e4
[Pass] UNCACHEABLE(p) => 0x4ae9c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x10fad0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2c14000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48a9c0e4
[Pass] UNCACHEABLE(p) => 0x48a9c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x10fd70
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2d74000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4669c0e4
[Pass] UNCACHEABLE(p) => 0x4669c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x1100d8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2ed4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4429c0e4
[Pass] UNCACHEABLE(p) => 0x4429c0e4
chunk = GetNextMemoryChunk(suite, chunk) => 0x1103e8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4ed4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x44400064
[Pass] UNCACHEABLE(p) => 0x44400064
chunk = GetNextMemoryChunk(suite, chunk) => 0x1111d8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x5170000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x46400070
[Pass] UNCACHEABLE(p) => 0x46400070
chunk = GetNextMemoryChunk(suite, chunk) => 0x113070
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x7170000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x46800064
[Pass] UNCACHEABLE(p) => 0x46800064
chunk = GetNextMemoryChunk(suite, chunk) => 0x114878
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x740c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48800070
[Pass] UNCACHEABLE(p) => 0x48800070
chunk = GetNextMemoryChunk(suite, chunk) => 0x114c98
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x940c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48c00064
[Pass] UNCACHEABLE(p) => 0x48c00064
chunk = GetNextMemoryChunk(suite, chunk) => 0x115388
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x96a8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4ac00070
[Pass] UNCACHEABLE(p) => 0x4ac00070
chunk = GetNextMemoryChunk(suite, chunk) => 0x115708
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xb6a8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x55e00064
[Pass] UNCACHEABLE(p) => 0x55e00064
chunk = GetNextMemoryChunk(suite, chunk) => 0x115a50
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xb944000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x57e00070
[Pass] UNCACHEABLE(p) => 0x57e00070
chunk = GetNextMemoryChunk(suite, chunk) => 0x1165c0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xd944000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x58200064
[Pass] UNCACHEABLE(p) => 0x58200064
chunk = GetNextMemoryChunk(suite, chunk) => 0x116800
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xdbe0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5a200070
[Pass] UNCACHEABLE(p) => 0x5a200070
chunk = GetNextMemoryChunk(suite, chunk) => 0x116c98
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xfb00000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5a600064
[Pass] UNCACHEABLE(p) => 0x5a600064
chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0xfb00000
shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] strlen("abc") => 0x3
[Pass] strlen("qwertyuiop") => 0xa
[Pass] strlen("") => 0x0
[Pass] strcpy(msg, "hi there") => 0x21872c
[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) => 0x218700
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x2186e0
[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) => 0xe0d000ee
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] task_max => 0x84
[Pass] task_max => 0x84
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0xe0d200c0
[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) => 0xe0d4020c
[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) => 0xe0d60096
[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
LUA Test
Code: [Select]
===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-5-22 19:10:19
===============================================================================
Strict mode tests...
Strict mode tests passed.
Generic tests...
camera = table:
shutter = table:
raw = 123
apex = 8.374999
ms = 3
value = 0.003012
aperture = table:
raw = 40
apex = 4
value = 4
min = table:
raw = 40
apex = 4
value = 4
max = table:
raw = 80
apex = 9
value = 22.6
iso = table:
raw = 88
apex = 7.
value = 400
ec = table:
raw = 0
value = 0
flash_ec = table:
raw = 0
value = 0
kelvin = 6500
mode = 20
metering_mode = 5
drive_mode = 0
model = "Canon EOS 6D"
model_short = "6D"
firmware = "1.1.8"
temperature = 178
state = 0
reboot = 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
show = function: p
hide = function: p
clear = function: p
lv = table:
enabled = true
paused = false
running = true
zoom = 1
resume = function: p
pause = function: p
stop = function: p
info = function: p
wait = function: p
start = function: p
lens = table:
name = "EF24-70mm f/4L IS USM"
focal_length = 24
focus_distance = 655350
hyperfocal = 5013
dof_near = 4975
dof_far = 1000000
af = true
af_mode = 0
focus = function: p
display = table:
idle = true
height = 480
width = 720
circle = function: p
on = function: p
pixel = function: p
print = function: p
draw = function: p
off = function: p
notify_box = function: p
load = function: p
screenshot = function: p
clear = function: p
rect = function: p
line = function: p
key = table:
last = 0
wait = function: p
press = function: p
menu = table:
visible = false
get = function: p
open = function: p
new = function: p
set = function: p
block = function: p
close = function: p
testmenu = userdata:
value = 0
name = "Script API tests"
help = "Various tests for the Lua scripting API."
help2 = "When adding new Lua APIs, tests for them should go here."
advanced = 0
depends_on = 0
edit_mode = 0
hidden = false
icon_type = 5
jhidden = false
max = 0
min = 0
selected = true
shidden = false
starred = false
submenu_height = 0
submenu_width = 0
unit = 0
works_best_in = 0
run_in_separate_task = 0
select = function: p
update = nil
info = nil
rinfo = nil
warning = nil
movie = table:
recording = false
stop = function: p
start = function: p
dryos = table:
clock = 1771
ms_clock = 1771032
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 = 9918
folder_number = 100
free_space = 14187776
type = "SD"
path = "B:/"
_card_ptr = userdata
shooting_card = table:
cluster_size = 32768
drive_letter = "B"
file_number = 9918
folder_number = 100
free_space = 14187776
type = "SD"
path = "B:/"
_card_ptr = userdata
date = table:
day = 22
month = 5
year = 2018
sec = 21
yday = 142
isdst = false
hour = 19
wday = 3
min = 10
remove = function: p
call = function: p
directory = function: p
interval = table:
time = 10
count = 0
running = 0
stop = function: p
battery = table:
level = 45
id = 0
performance = 3
time = 9405
drain_rate = 17
task = table:
yield = function: p
create = function: p
property = table:
Generic tests completed.
Module tests...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt
Append test OK
Testing exposure settings, module 'camera'...
Camera : Canon EOS 6D (6D) 1.1.8
Lens : EF24-70mm f/4L IS USM
Shoot mode: 20
Shutter : ‚320 (raw 123, 0.003012s, 3ms, apex 8.374999)
Aperture : 4.0 (raw 40, f/4, apex 4)
Av range : 4.0..22 (raw 40..80, f/4..f/22.6, apex 4..9)
ISO : 400 (raw 88, 400, apex 7.)
EC : 0.0 (raw 0, 0 EV)
Flash EC : 0.0 (raw 0, 0 EV)
Please switch to M mode.
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 module 'lv'...
Starting LiveView...
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.
Focus distance: 655350
Focusing backward...
Focus distance: 655350
Focusing forward with step size 3, wait=true...
...
Focus distance: 510
Focusing backward with step size 3, wait=true...
.
Focus distance: 780
Focus range: 3 steps forward, 1 steps backward.
Focusing forward with step size 3, wait=false...
...
Focus distance: 830
Focusing backward with step size 3, wait=false...
.
Focus distance: 830
Focus range: 3 steps forward, 1 steps backward.
Focusing forward with step size 2, wait=true...
.......................
Focus distance: 380
Focusing backward with step size 2, wait=true...
.....................
Focus distance: 655350
Focus range: 23 steps forward, 21 steps backward.
Focusing forward with step size 2, wait=false...
.......................
Focus distance: 470
Focusing backward with step size 2, wait=false...
.....................
Focus distance: 655350
Focus range: 23 steps forward, 21 steps backward.
Focusing forward with step size 1, wait=true...
............................................................................................
Focus distance: 370
Focusing backward with step size 1, wait=true...
..........................................................................................
Focus distance: 655350
Focus range: 92 steps forward, 90 steps backward.
Focusing forward with step size 1, wait=false...
............................................................................................
Focus distance: 390
Focusing backward with step size 1, wait=false...
..........................................................................................
Focus distance: 655350
Focus range: 92 steps forward, 90 steps backward.
Focus test completed.
Done!