⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tstodr.c

📁 harvest是一个下载html网页得机器人
💻 C
字号:
/* * Copyright (c) 1995-2003, Index Data * See the file LICENSE for details. * * $Id: tstodr.c,v 1.5 2003/05/26 13:47:23 adam Exp $ * */#include <stdio.h>#include <yaz/odr.h>#include "tstodrcodec.h"void tst_MySequence1(ODR encode, ODR decode){    char *ber_buf;    int ber_len;    Yc_MySequence *s = odr_malloc(encode, sizeof(*s));    Yc_MySequence *t;    s->first = odr_intdup(encode, 12345);    s->second = odr_malloc(encode, sizeof(*s->second));    s->second->buf = "hello";    s->second->len = 5;    s->second->size = 0;    s->third = odr_intdup(encode, 1);    s->fourth = odr_nullval();    s->fifth = odr_intdup(encode, YC_MySequence_enum1);    if (!yc_MySequence(encode, &s, 0, 0))        exit(1);        ber_buf = odr_getbuf(encode, &ber_len, 0);    odr_setbuf(decode, ber_buf, ber_len, 0);    if (!yc_MySequence(decode, &t, 0, 0))        exit(2);    if (!t->first || *t->first != 12345)        exit(3);    if (!t->second || !t->second->buf || t->second->len != 5)        exit(4);    if (memcmp(t->second->buf, "hello", t->second->len))        exit(5);    if (!t->third || *t->third != 1)        exit(6);    if (!t->fourth)        exit(7);    if (!t->fifth || *t->fifth != YC_MySequence_enum1)        exit(8);}void tst_MySequence2(ODR encode, ODR decode){    char *ber_buf;    int ber_len;    Yc_MySequence *s = odr_malloc(encode, sizeof(*s));    Yc_MySequence *t;    s->first = 0;  /* deliberately miss this .. */    s->second = odr_malloc(encode, sizeof(*s->second));    s->second->buf = "hello";    s->second->len = 5;    s->second->size = 0;    s->third = odr_intdup(encode, 1);    s->fourth = odr_nullval();    s->fifth = odr_intdup(encode, YC_MySequence_enum1);    if (yc_MySequence(encode, &s, 0, 0)) /* should fail */        exit(9);    if (odr_geterror(encode) != OREQUIRED)        exit(10);    if (strcmp(odr_getelement(encode), "first"))        exit(11);    odr_reset(encode);    if (odr_geterror(encode) != ONONE)        exit(12);    if (strcmp(odr_getelement(encode), ""))        exit(13);}void tst_MySequence3(ODR encode, ODR decode){    char buf[40];    int i;    Yc_MySequence *t;    srand(123);    for (i = 0; i<1000; i++)    {        int j;        for (j = 0; j<sizeof(buf); j++)            buf[j] = rand();        for (j = 1; j<sizeof(buf); j++)        {            odr_setbuf(decode, buf, j, 0);            yc_MySequence(decode, &t, 0, 0);            odr_reset(decode);        }    }}int main(int argc, char **argv){    ODR odr_encode = odr_createmem(ODR_ENCODE);    ODR odr_decode = odr_createmem(ODR_DECODE);    tst_MySequence1(odr_encode, odr_decode);    tst_MySequence2(odr_encode, odr_decode);    tst_MySequence3(odr_encode, odr_decode);    odr_destroy(odr_encode);    odr_destroy(odr_decode);    exit(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -