📄 ck_regfile.cpp
字号:
} if(stt.is_reg()==false) { WY_THROW( WyRet() ); } if(stt.sf_size()!=1) { WY_THROW( WyRet() ); } } // chk TFile2A // if(TFile2A.pos()!=0) { WY_THROW( WyRet() ); } if(TFile2A.fh().is_default()) { WY_THROW( WyRet() ); } // stat TFile2A { WyFileStat stt; if((r=TFile2A.stat(stt))!=Ok) { WY_THROW(r); } if(stt.is_default()) { WY_THROW( WyRet() ); } if(stt.is_reg()==false) { WY_THROW( WyRet() ); } if(stt.sf_size()!=2) { WY_THROW( WyRet() ); } } // WyRegFile(const WyRegFile&) { WyRegFile tmp1(TFile1A); CHK_NOT_DEFAULT(tmp1); if(tmp1.fh()==TFile1A.fh()) { WY_THROW( WyRet() ); } if(tmp1.pos()!=TFile1A.pos()) { WY_THROW( WyRet() ); } tmp1.set_pos(5); WyRegFile tmp2(tmp1); CHK_NOT_DEFAULT(tmp2); if(tmp2.fh()==tmp1.fh()) { WY_THROW( WyRet() ); } if(tmp2.pos()!=tmp1.pos()) { WY_THROW( WyRet() ); } } // reset() { WyRegFile tmp(EmptyFile); CHK_NOT_DEFAULT(tmp); if((r=tmp.reset())!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp); } // read(void*,..) read(char&) { WyRegFile tmp(TFile1A); char buf[2]={-1,-1}; size_t n_rd=5; // anything >1 CHK_NOT_DEFAULT(tmp); if((r=tmp.read(buf,size_t(0),n_rd))!=Ok) { WY_THROW(r); } if(n_rd!=0) { WY_THROW( WyRet() ); } n_rd=99; if((r=tmp.read(buf,sizeof(buf),n_rd))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } if(buf[1]!=char(-1)) { WY_THROW( WyRet() ); } if(tmp.pos()!=1) { WY_THROW( WyRet() ); } // eof if((r=tmp.read(buf,sizeof(buf),n_rd))!=Ok) { WY_THROW(r); } if(n_rd!=0) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } if(buf[1]!=char(-1)) { WY_THROW( WyRet() ); } if(tmp.pos()!=1) { WY_THROW( WyRet() ); } if((r=tmp.reset())!=Ok) { WY_THROW(r); } if((r=tmp.reset(TFile1A))!=Ok) { WY_THROW(r); } // chk reset default pos { WyRegFile tmp2(tmp); CHK_SAME_SYSF(tmp,tmp2); if((r=tmp2.reset())!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp2); if((r=tmp2.reset(tmp))!=Ok) { WY_THROW(r); } CHK_SAME_SYSF(tmp,tmp2); if((r=tmp2.reset(WyFileHandle()))!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp2); if((r=tmp2.reset(tmp))!=Ok) { WY_THROW(r); } CHK_SAME_SYSF(tmp,tmp2); if((r=tmp2.reset(WyRegFile()))!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp2); if((r=tmp2.reset(tmp))!=Ok) { WY_THROW(r); } CHK_SAME_SYSF(tmp,tmp2); if((r=tmp2.reset(WyByteFlow()))!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp2); } } // read WyStr { WyRegFile tmp(TFile1A); WyStr buf; size_t n_rd=5; // anything >1 CHK_NOT_DEFAULT(tmp); if((r=tmp.read(buf,size_t(0),n_rd))!=Ok) { WY_THROW(r); } if(n_rd!=0) { WY_THROW( WyRet() ); } n_rd=5; // pre-set to invalid if((r=tmp.read(buf,size_t(5),n_rd))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(buf.size()!=1) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } if(tmp.pos()!=1) { WY_THROW( WyRet() ); } // eof if((r=tmp.read(buf,size_t(5),n_rd))!=Ok) { WY_THROW(r); } if(n_rd!=0) { WY_THROW( WyRet() ); } if(buf.size()!=1) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } if(tmp.pos()!=1) { WY_THROW( WyRet() ); } // read again from the begin tmp.set_pos(0); if((r=tmp.read(buf,size_t(5),n_rd))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(buf.size()!=2) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } if(buf[1]!='\n') { WY_THROW( WyRet() ); } if(tmp.pos()!=1) { WY_THROW( WyRet() ); } } // _read_till { WyRegFile tmp2(TFile2A); char buf[2]={-1,-1}; size_t n_rd=5; // anything >1 CHK_NOT_DEFAULT(tmp2); buf[0]=99; buf[1]=99; n_rd=5; if((r=tmp2._read_till(buf,sizeof(buf),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(tmp2.pos()!=1) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } buf[0]=99; n_rd=5; if((r=tmp2._read_till(buf,sizeof(buf),n_rd,char(99)))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(tmp2.pos()!=2) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } tmp2.set_pos(0); } // _read_till(WyStr) { WyRegFile tmp(TFile1A); WyStr buf; size_t n_rd=5; // anything >1 WyRegFile tmp2(TFile2A); CHK_NOT_DEFAULT(tmp2); buf.reset(); n_rd=9; if((r=tmp2._read_till(buf,0,n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=0) { WY_THROW( WyRet() ); } n_rd=9; if((r=tmp2._read_till(buf,10,n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(tmp2.pos()!=1) { WY_THROW( WyRet() ); } if(buf.size()!=1) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } n_rd=9; if((r=tmp2._read_till(buf,10,n_rd,char(99)))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(tmp2.pos()!=2) { WY_THROW( WyRet() ); } if(buf.size()!=2) { WY_THROW( WyRet() ); } if(buf!="\n\n") { WY_THROW( WyRet() ); } } // write { WyRegFile tmp; WyStr tnam(Tmp_Name); const char buf[2]={-1,-1}; size_t n_wr=5; // anything not zero CHK_DEFAULT(tmp); if((r=WyRegFile::create(tmp,tnam,O_WRONLY,0))!=Ok) { WY_THROW(r); } Wy_AtDestroy<WyRet,const WyStr&> rrid(Wy::unlink,tnam); CHK_NOT_DEFAULT(tmp); if((r=tmp.write(buf,sizeof(buf),n_wr))!=Ok) { WY_THROW(r); } if(n_wr!=sizeof(buf)) { WY_THROW( WyRet() ); } if(tmp.pos()!=sizeof(buf)) { WY_THROW( WyRet() ); } if((tmp.fdatasync())!=Ok) { WY_THROW( WyRet() ); } if((tmp.fsync())!=Ok) { WY_THROW( WyRet() ); } if((r=tmp.write(WyStr("x"),n_wr))!=Ok) { WY_THROW(r); } if(n_wr!=1) { WY_THROW( WyRet() ); } if(tmp.pos()!=sizeof(buf)+1) { WY_THROW( WyRet() ); } if((tmp.fdatasync())!=Ok) { WY_THROW( WyRet() ); } CHK_NOT_DEFAULT(tmp); tmp.set_pos(1); if(tmp.pos()!=1) { WY_THROW( WyRet() ); } } // seek_end { WyRegFile tmp(TFile1A); CHK_NOT_DEFAULT(tmp); if((r=tmp.seek_end())!=Ok) { WY_THROW(r); } if(tmp.pos()!=1) { WY_THROW( WyRet() ); } if(TFile1A.pos()!=0) { WY_THROW( WyRet() ); // should not be modified } if((r=tmp.reset())!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp); } // _read_till(1), TFile1A { WyRegFile tmp(TFile1A); char buf[2]={-1,-1}; size_t n_rd=5; // anything not zero CHK_NOT_DEFAULT(tmp); if((r=tmp._read_till(buf,sizeof(buf),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } if(tmp.pos()!=1) { WY_THROW( WyRet() ); } CHK_NOT_DEFAULT(tmp); n_rd=5; // pre-set for test overwrite if((r=tmp._read_till(buf,sizeof(buf),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=0) { WY_THROW( WyRet() ); } if((r=tmp.reset())!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp); } // _read_till(2), TFile1A { WyRegFile tmp(TFile1A); WyStr buf("b"); size_t n_rd=5; // anything not zero CHK_NOT_DEFAULT(tmp); if((r=tmp._read_till(buf,size_t(0),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=0) { WY_THROW( WyRet() ); } if(buf!="b") { WY_THROW( WyRet() ); } if(tmp.pos()!=0) { WY_THROW( WyRet() ); } n_rd=5; // pre-set for test overwrite if((r=tmp._read_till(buf,size_t(2),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(buf!="b\n") { WY_THROW( WyRet() ); } if(tmp.pos()!=1) { WY_THROW( WyRet() ); } if((r=tmp._read_till(buf,size_t(5),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=0) { WY_THROW( WyRet() ); } if(buf!="b\n") { WY_THROW( WyRet() ); } CHK_NOT_DEFAULT(tmp); // read again, see if it is appended tmp.set_pos(0); n_rd=5; // pre-set for test overwrite if((r=tmp._read_till(buf,size_t(5),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(buf!="b\n\n") { WY_THROW( WyRet() ); } if(tmp.pos()!=1) { WY_THROW( WyRet() ); } CHK_NOT_DEFAULT(tmp); } // _read_till(1), TFile2A { WyRegFile tmp(TFile2A); char buf[3]={-1,-1,-1}; size_t n_rd=5; // anything not zero CHK_NOT_DEFAULT(tmp); if((r=tmp._read_till(buf,sizeof(buf),n_rd,'?'))!=Ok) { WY_THROW(r); } if(n_rd!=2) { // TFile2A is two bytes long WY_THROW( WyRet() ); } if((buf[0]!='\n')||(buf[1]!='\n')) { WY_THROW( WyRet() ); } if(tmp.pos()!=2) { WY_THROW( WyRet() ); } if((r=tmp.reset())!=Ok) { WY_THROW(r); } if((r=tmp.reset(TFile2A))!=Ok) { WY_THROW(r); } if((r=tmp._read_till(buf,sizeof(buf),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } if(tmp.pos()!=1) { WY_THROW( WyRet() ); } if((r=tmp._read_till(buf,sizeof(buf),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } if(tmp.pos()!=2) { WY_THROW( WyRet() ); } if((r=tmp._read_till(buf,sizeof(buf),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=0) { WY_THROW( WyRet() ); } if(tmp.pos()!=2) { WY_THROW( WyRet() ); } if((r=tmp.reset())!=Ok) { WY_THROW(r); } CHK_DEFAULT(tmp); } // _read_till(2), TFile2A { WyRegFile tmp(TFile2A); WyStr buf; size_t n_rd=5; // anything not zero CHK_NOT_DEFAULT(tmp); if((r=tmp._read_till(buf,size_t(5),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(buf.size()!=1) { WY_THROW( WyRet() ); } if(n_rd!=1) { WY_THROW( WyRet() ); } if(buf[0]!='\n') { WY_THROW( WyRet() ); } if(tmp.pos()!=1) { WY_THROW( WyRet() ); } CHK_NOT_DEFAULT(tmp); if((r=tmp._read_till(buf,size_t(5),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(buf.size()!=2) { WY_THROW( WyRet() ); // not appended } if(n_rd!=1) { WY_THROW( WyRet() ); } if(buf[1]!='\n') { WY_THROW( WyRet() ); } if(tmp.pos()!=2) { WY_THROW( WyRet() ); } CHK_NOT_DEFAULT(tmp); if((r=tmp._read_till(buf,size_t(5),n_rd,'\n'))!=Ok) { WY_THROW(r); } if(n_rd!=0) { WY_THROW( WyRet() ); } if(buf.size()!=2) { WY_THROW( WyRet() ); // modified } CHK_NOT_DEFAULT(tmp); } // _read_till, TFile2A { WyRegFile tmp("ck_regfile.cpp",O_RDONLY); // this file size_t fsize; // size of this file WyStr buf; size_t n_rd=99999; CHK_NOT_DEFAULT(tmp); { WyFileStat stt; if((r=tmp.stat(stt))!=Ok) { WY_THROW(r); } fsize=stt.sf_size(); if(fsize<1800) { // known minimal WY_THROW( WyRet() ); } if((r=buf.append(char(0)))!=Ok) { WY_THROW(r); } } // Find this unique character ` (exactly here in this cpp file) // const char UniqueChar='`'; if((r=tmp._read_till(buf,fsize,n_rd,UniqueChar))!=Ok) { WY_THROW(r); } if((n_rd>=fsize)||(n_rd<1800)) { // n_rd range not right WY_THROW( WyRet() ); } if(buf.size()!=n_rd+1) { WY_THROW( WyRet() ); } if(buf[0]!=char(0)) { WY_THROW( WyRet() ); // pre-exit char overwritten } if(buf[n_rd]!=UniqueChar) { WY_THROW( WyRet() ); } if(tmp.pos()!=off_t(n_rd)) { WY_THROW( WyRet() ); } } // resize { WyRegFile tmp; const char buf[2]={-1,-1}; size_t n_wr=5; // anything not zero CHK_DEFAULT(tmp);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -