Nugget
Loading...
Searching...
No Matches
Macros | Functions | Variables
memcpy.c File Reference
#include "common/syscalls/syscalls.h"
#include "exotic/cester.h"
Include dependency graph for memcpy.c:

Macros

#define CESTER_NO_SIGNAL
 
#define CESTER_NO_TIME
 
#define EXIT_SUCCESS   0
 
#define EXIT_FAILURE   1
 

Functions

 CESTER_BODY (void *__wrap_memcpy(void *dest, const void *src, size_t n);)
 
 cester_assert_ptr_equal (result, out)
 
 cester_assert_uint_eq (out[0], in[0])
 
 cester_assert_uint_eq (out[1], in[1])
 
 cester_assert_uint_eq (out[2], in[2])
 
 cester_assert_uint_eq (out[3], 0)
 
 CESTER_TEST (fastmemcpyLarger, test_instance, char in[]={ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };char out[]={ 0, 0, 0, 0, 0, 0, 0, 0, 0 };void *result=__wrap_memcpy(out, in, sizeof(in));cester_assert_ptr_equal(result, out);cester_assert_uint_eq(out[0], in[0]);cester_assert_uint_eq(out[1], in[1]);cester_assert_uint_eq(out[2], in[2]);cester_assert_uint_eq(out[3], in[3]);cester_assert_uint_eq(out[4], in[4]);cester_assert_uint_eq(out[5], in[5]);cester_assert_uint_eq(out[6], in[6]);cester_assert_uint_eq(out[7], in[7]);cester_assert_uint_eq(out[8], in[8]);cester_assert_uint_eq(out[9], in[9]);cester_assert_uint_eq(out[10], in[10]);) CESTER_TEST(fastmemcpyLargest
 
 for (unsigned i=0;i< 50;i++)
 
 CESTER_TEST (fastmemcpyDestUnaligned, test_instance, char in[50];char out[51]={ 0 };for(unsigned i=0;i< 50;i++) { in[i]=i;} void *result=__wrap_memcpy(out+1, in, sizeof(in));cester_assert_ptr_equal(result, out+1);cester_assert_equal(out[0], 0);for(unsigned i=0;i< 50;i++) { cester_assert_equal(out[i+1], i);}) CESTER_TEST(fastmemcpySrcUnaligned
 
 CESTER_TEST (fastmemcpyBothLikeUnaligned, test_instance, char in[51];char out[51]={ 0 };for(unsigned i=0;i< 51;i++) { in[i]=i;} void *result=__wrap_memcpy(out+1, in+1, 50);cester_assert_ptr_equal(result, out+1);cester_assert_equal(out[0], 0);for(unsigned i=0;i< 50;i++) { cester_assert_equal(out[i+1], i+1);}) CESTER_TEST(fastmemcpyBothUnlikeUnaligned
 
 cester_assert_ptr_equal (result, out+1)
 
 cester_assert_equal (out[0], 0)
 
 CESTER_TEST (memcpySmall, test_instance, char in[4]={ 1, 2, 3, 4 };char out[4]={ 0, 0, 0, 0 };void *result=__builtin_memcpy(out, in, 3);cester_assert_ptr_equal(result, out);cester_assert_uint_eq(out[0], in[0]);cester_assert_uint_eq(out[1], in[1]);cester_assert_uint_eq(out[2], in[2]);cester_assert_uint_eq(out[3], 0);) CESTER_TEST(memcpyLarger
 
 cester_assert_uint_eq (out[3], in[3])
 
 cester_assert_uint_eq (out[4], in[4])
 
 cester_assert_uint_eq (out[5], in[5])
 
 cester_assert_uint_eq (out[6], in[6])
 
 cester_assert_uint_eq (out[7], in[7])
 
 cester_assert_uint_eq (out[8], in[8])
 
 cester_assert_uint_eq (out[9], in[9])
 
 cester_assert_uint_eq (out[10], in[10])
 
 CESTER_TEST (memcpyLargest, test_instance, char in[50];char out[50]={ 0 };for(unsigned i=0;i< 50;i++) { in[i]=i;} void *result=__builtin_memcpy(out, in, sizeof(in));cester_assert_ptr_equal(result, out);for(unsigned i=0;i< 50;i++) { cester_assert_equal(out[i], i);}) CESTER_TEST(memcpyDestUnaligned
 
 CESTER_TEST (memcpySrcUnaligned, test_instance, char in[51];char out[50]={ 0 };for(unsigned i=0;i< 51;i++) { in[i]=i;} void *result=__builtin_memcpy(out, in+1, sizeof(out));cester_assert_ptr_equal(result, out);for(unsigned i=0;i< 50;i++) { cester_assert_equal(out[i], i+1);}) CESTER_TEST(memcpyBothLikeUnaligned
 

Variables

char out [4] = { 0, 0, 0, 0 }
 
voidresult = __wrap_memcpy(out, in, 3)
 
 test_instance
 
char in [50] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }
 

Macro Definition Documentation

◆ CESTER_NO_SIGNAL

#define CESTER_NO_SIGNAL

◆ CESTER_NO_TIME

#define CESTER_NO_TIME

◆ EXIT_FAILURE

#define EXIT_FAILURE   1

◆ EXIT_SUCCESS

#define EXIT_SUCCESS   0

Function Documentation

◆ cester_assert_equal()

cester_assert_equal ( out  [0],
 
)

◆ cester_assert_ptr_equal() [1/2]

cester_assert_ptr_equal ( result  ,
out   
)

◆ cester_assert_ptr_equal() [2/2]

cester_assert_ptr_equal ( result  ,
out 1 
)

◆ cester_assert_uint_eq() [1/12]

cester_assert_uint_eq ( out  [0],
in  [0] 
)

◆ cester_assert_uint_eq() [2/12]

cester_assert_uint_eq ( out  [10],
in  [10] 
)

◆ cester_assert_uint_eq() [3/12]

cester_assert_uint_eq ( out  [1],
in  [1] 
)

◆ cester_assert_uint_eq() [4/12]

cester_assert_uint_eq ( out  [2],
in  [2] 
)

◆ cester_assert_uint_eq() [5/12]

cester_assert_uint_eq ( out  [3],
 
)

◆ cester_assert_uint_eq() [6/12]

cester_assert_uint_eq ( out  [3],
in  [3] 
)

◆ cester_assert_uint_eq() [7/12]

cester_assert_uint_eq ( out  [4],
in  [4] 
)

◆ cester_assert_uint_eq() [8/12]

cester_assert_uint_eq ( out  [5],
in  [5] 
)

◆ cester_assert_uint_eq() [9/12]

cester_assert_uint_eq ( out  [6],
in  [6] 
)

◆ cester_assert_uint_eq() [10/12]

cester_assert_uint_eq ( out  [7],
in  [7] 
)

◆ cester_assert_uint_eq() [11/12]

cester_assert_uint_eq ( out  [8],
in  [8] 
)

◆ cester_assert_uint_eq() [12/12]

cester_assert_uint_eq ( out  [9],
in  [9] 
)

◆ CESTER_BODY()

CESTER_BODY ( void *__wrap_memcpy(void *dest, const void *src, size_t n);  )

◆ CESTER_TEST() [1/6]

CESTER_TEST ( fastmemcpyBothLikeUnaligned  ,
test_instance  ,
char in;char  out[51][51] = { 0 }; for (unsigned i = 0; i < 51; i++) { in[i] = i; } voidresult = __wrap_memcpy(out + 1, in + 1, 50); cester_assert_ptr_equal(resultout + 1); cester_assert_equal(out[0], 0); for (unsigned i = 0; i < 50; i++) { cester_assert_equal(out[i + 1], i + 1); } 
)

◆ CESTER_TEST() [2/6]

CESTER_TEST ( fastmemcpyDestUnaligned  ,
test_instance  ,
char in;char  out[50][51] = { 0 }; for (unsigned i = 0; i < 50; i++) { in[i] = i; } voidresult = __wrap_memcpy(out + 1, in, sizeof(in)); cester_assert_ptr_equal(resultout + 1); cester_assert_equal(out[0], 0); for (unsigned i = 0; i < 50; i++) { cester_assert_equal(out[i + 1], i); } 
)

◆ CESTER_TEST() [3/6]

CESTER_TEST ( fastmemcpyLarger  ,
test_instance  ,
char  in[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; char out[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; voidresult = __wrap_memcpy(outin, sizeof(in)); cester_assert_ptr_equal(resultout); cester_assert_uint_eq(out[0], in[0]); cester_assert_uint_eq(out[1], in[1]); cester_assert_uint_eq(out[2], in[2]); cester_assert_uint_eq(out[3], in[3]); cester_assert_uint_eq(out[4], in[4]); cester_assert_uint_eq(out[5], in[5]); cester_assert_uint_eq(out[6], in[6]); cester_assert_uint_eq(out[7], in[7]); cester_assert_uint_eq(out[8], in[8]); cester_assert_uint_eq(out[9], in[9]); cester_assert_uint_eq(out[10], in[10]); 
)

◆ CESTER_TEST() [4/6]

CESTER_TEST ( memcpyLargest  ,
test_instance  ,
char in;char  out[50][50] = { 0 }; for (unsigned i = 0; i < 50; i++) { in[i] = i; } voidresult = __builtin_memcpy(outin, sizeof(in)); cester_assert_ptr_equal(resultout); for (unsigned i = 0; i < 50; i++) { cester_assert_equal(out[i], i); } 
)

◆ CESTER_TEST() [5/6]

CESTER_TEST ( memcpySmall  ,
test_instance  ,
char  in[4] = { 1, 2, 3, 4 }; char out[4] = { 0, 0, 0, 0 }; voidresult = __builtin_memcpy(outin, 3); cester_assert_ptr_equal(resultout); cester_assert_uint_eq(out[0], in[0]); cester_assert_uint_eq(out[1], in[1]); cester_assert_uint_eq(out[2], in[2]); cester_assert_uint_eq(out[3], 0); 
)

◆ CESTER_TEST() [6/6]

CESTER_TEST ( memcpySrcUnaligned  ,
test_instance  ,
char in;char  out[51][50] = { 0 }; for (unsigned i = 0; i < 51; i++) { in[i] = i; } voidresult = __builtin_memcpy(outin + 1, sizeof(out)); cester_assert_ptr_equal(resultout); for (unsigned i = 0; i < 50; i++) { cester_assert_equal(out[i], i + 1); } 
)

◆ for()

for ( )

Variable Documentation

◆ in

char in = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }

◆ out

char out[51] = { 0, 0, 0, 0 }

◆ result

void * result = __wrap_memcpy(out, in, 3)

◆ test_instance

test_instance