| 18 | #define FREE_DEEP_COPY ; |
| 19 | |
| 20 | void mexFunction |
| 21 | ( |
| 22 | int nargout, |
| 23 | mxArray *pargout [ ], |
| 24 | int nargin, |
| 25 | const mxArray *pargin [ ] |
| 26 | ) |
| 27 | { |
| 28 | |
| 29 | GrB_Info info ; |
| 30 | GrB_Matrix A = NULL, B = NULL, Y_mangled = NULL, Y = NULL, C1 = NULL, |
| 31 | C2 = NULL ; |
| 32 | |
| 33 | //-------------------------------------------------------------------------- |
| 34 | // startup GraphBLAS |
| 35 | //-------------------------------------------------------------------------- |
| 36 | |
| 37 | bool malloc_debug = GB_mx_get_global (true) ; |
| 38 | int expected = GrB_SUCCESS ; |
| 39 | |
| 40 | //-------------------------------------------------------------------------- |
| 41 | // matrix check |
| 42 | //-------------------------------------------------------------------------- |
| 43 | |
| 44 | OK (GrB_Matrix_new (&A, GrB_FP64, 100, 100)) ; |
| 45 | OK (GxB_Matrix_Option_set (A, GxB_SPARSITY_CONTROL, GxB_HYPERSPARSE)) ; |
| 46 | OK (GrB_Matrix_setElement_FP64 (A, (double) 1.2, 0, 0)) ; |
| 47 | OK (GrB_Matrix_wait (A, 1)) ; |
| 48 | OK (GxB_Matrix_fprint (A, "A valid", 3, NULL)) ; |
| 49 | |
| 50 | printf ("\ninvalid A->p:\n") ; |
| 51 | size_t save = A->p_size ; |
| 52 | A->p_size = 3 ; |
| 53 | expected = GrB_INVALID_OBJECT ; |
| 54 | ERR (GxB_Matrix_fprint (A, "A with invalid A->p", 3, NULL)) ; |
| 55 | A->p_size = save ; |
| 56 | |
| 57 | printf ("\ninvalid A->h:\n") ; |
| 58 | save = A->h_size ; |
| 59 | A->h_size = 3 ; |
| 60 | ERR (GxB_Matrix_fprint (A, "A with invalid A->h", 3, NULL)) ; |
| 61 | A->h_size = save ; |
| 62 | |
| 63 | printf ("\ninvalid A->Y:\n") ; |
| 64 | CHECK (A->Y != NULL) ; |
| 65 | A->Y->magic = GB_MAGIC2 ; |
| 66 | ERR (GxB_Matrix_fprint (A, "A with invalid A->Y", 3, NULL)) ; |
| 67 | A->Y->magic = GB_MAGIC ; |
| 68 | |
| 69 | OK (GrB_Matrix_new (&Y_mangled, GrB_FP64, 100, 100)) ; |
| 70 | OK (GrB_Matrix_free (&(A->Y))) ; |
| 71 | A->Y = Y_mangled ; |
| 72 | ERR (GxB_Matrix_fprint (A, "A with invalid A->Y (wrong type)", 3, NULL)) ; |
| 73 | |
| 74 | OK (GrB_Matrix_free (&A)) ; |
| 75 | |
| 76 | OK (GrB_Matrix_new (&A, GrB_FP64, 100, 100)) ; |
| 77 | OK (GxB_Matrix_Option_set (A, GxB_SPARSITY_CONTROL, GxB_SPARSE)) ; |
nothing calls this directly
no test coverage detected