#include #include #include #include "zerror.h" void test0() { struct zerror_s *zs, *zs_l, *zs_cp, *zs_se = NULL, *zs_se_l = NULL, *zs_pe = NULL, *zs_pe2 = NULL; zs = zerror_new(-12, -45, "error № %d, %s", -8752, "некая строка"); printf("zerror_new = {%d, %d, %s}\n", zs->domain, zs->code, zs->message); zs_l = zerror_new_literal(-52, -8954, "литерал"); printf("zerror_new_literal = {%d, %d, %s}\n", zs_l->domain, zs_l->code, zs_l->message); zs_cp = zerror_copy(zs_l); printf("zerror_copy = {%d, %d, %s}\n", zs_cp->domain, zs_cp->code, zs_cp->message); printf("zerror_matches(-52, -8954) = %d\n", zerror_matches(zs_cp, -52, -8954)); printf("zerror_matches(-53, -8954) = %d\n", zerror_matches(zs_cp, -53, -8954)); printf("zerror_matches(-52, -1954) = %d\n", zerror_matches(zs_cp, -52, -1954)); /* indicates error in smb's code */ z_set_error(&zs, -928, -894, "error was set by z_set_error(%d, %d)", -928, -894); printf("ERRinSMB'sCODE: z_set_error = {%d, %d, %s}\n", zs->domain, zs->code, zs->message); z_set_error(&zs_se, -928, -894, "error was set by z_set_error(%d, %d)", -928, -894); printf("z_set_error = {%d, %d, %s}\n", zs_se->domain, zs_se->code, zs_se->message); /* indicates error in smb's code */ z_set_error_literal(&zs, -928, -894, "error was set by z_set_error_literal()"); printf("ERRinSMB'sCODE: z_set_error_literal = {%d, %d, %s}\n", zs->domain, zs->code, zs->message); z_set_error_literal(&zs_se_l, -928, -894, "error was set by z_set_error_literal()"); printf("z_set_error_literal = {%d, %d, %s}\n", zs_se_l->domain, zs_se_l->code, zs_se_l->message); /* indicates error in smb's code */ z_propagate_error(&zs, zs_se); printf("ERRinSMB'sCODE: z_propagate_error = {%d, %d, %s}\n", zs->domain, zs->code, zs->message); z_propagate_error(&zs_pe, zs_se); printf("z_propagate_error = {%d, %d, %s}\n", zs_pe->domain, zs_pe->code, zs_pe->message); z_prefix_error(&zs_pe, "prefix(%s): ", "PREFIX"); printf("z_prefix_error = {%d, %d, %s}\n", zs_pe->domain, zs_pe->code, zs_pe->message); z_propagate_prefixed_error(&zs_pe2, zs_se_l, "prefix_propagate(%s): ", "propagated"); printf("z_propagate_prefixed_error = {%d, %d, %s}\n", zs_pe2->domain, zs_pe2->code, zs_pe2->message); zerror_free(zs); z_clear_error(&zs_l); zerror_free(zs_cp); //~ z_clear_error(&zs_se_l); // not need clear, because zs_se_l propagated to zs_pe2 //~ z_clear_error(&zs_se); // not need clear, because zs_se propagated to zs_pe z_clear_error(&zs_pe); } int main(/*int argc, char *argv[]*/) { test0(); return EXIT_SUCCESS; }