Added PEAddResource and PERemoveResource

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@7079 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
anders_k 2019-02-10 20:45:40 +00:00
parent 797e745de5
commit 978ac79a5d
17 changed files with 561 additions and 103 deletions

View file

@ -3,16 +3,19 @@
#include <stdlib.h>
extern unsigned char original_pe[8704];
class CResourceEditorTest : public CppUnit::TestFixture {
CPPUNIT_TEST_SUITE( CResourceEditorTest );
CPPUNIT_TEST( testCorrectness );
CPPUNIT_TEST( testBMP );
CPPUNIT_TEST_SUITE_END();
public:
enum { defnameid = 1337, deflangid = 1033 };
void testCorrectness() {
extern unsigned char original_pe[8704];
CResourceEditor re(original_pe, sizeof(original_pe));
DWORD size;
@ -32,6 +35,31 @@ public:
delete [] saved_pe;
}
void testBMP() {
CResourceEditor re(original_pe, sizeof(original_pe));
static const BYTE file_12_4bpp [] = { // BMP with the old header
66,77,134,0,0,0,0,0,0,0,74,0,0,0,12,0,0,0,19,0,5,0,1,0,4,0,222,24,0,74,74,74,0,255,0,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,2,34,2,0,2,32,0,32,0,32,0,0,2,32,2,34,32,34,2,34,
34,0,0,0,2,2,2,32,2,34,2,34,0,32,0,0,0,34,2,2,34,34,2,32,34,32,0,0,2,34,2,32,0,32,0,34,0,0,0,0
};
bool succ;
int ressize, bmpfilehdrsize = 14;
BYTE *resdata;
CPPUNIT_ASSERT( (succ = re.UpdateResource(RT_BITMAP, defnameid, deflangid, (BYTE*) file_12_4bpp, sizeof(file_12_4bpp), CResourceEditor::TM_AUTO)) );
if (succ)
{
ressize = re.GetResourceSize(RT_BITMAP, defnameid, deflangid);
CPPUNIT_ASSERT( ressize == sizeof(file_12_4bpp) - bmpfilehdrsize );
if ((resdata = re.GetResource(RT_BITMAP, defnameid, deflangid)))
{
CPPUNIT_ASSERT_EQUAL( 0, memcmp(resdata, file_12_4bpp + bmpfilehdrsize, ressize) );
re.FreeResource(resdata);
}
}
}
};
CPPUNIT_TEST_SUITE_REGISTRATION( CResourceEditorTest );

View file

@ -17,6 +17,7 @@ required = Split("""
dirreader.cpp
growbuf.cpp
mmap.cpp
BinInterop.cpp
ResourceEditor.cpp
util.cpp
winchar.cpp
@ -72,6 +73,7 @@ extralibs = Split("""
iconv
pthread
user32
oleaut32
""")
scripts = Split("""