diff options
author | David Sommerseth <davids@redhat.com> | 2009-08-11 11:34:21 +0200 |
---|---|---|
committer | David Sommerseth <davids@redhat.com> | 2009-08-11 11:34:21 +0200 |
commit | eb08fd406370a81172d7fdd0663233a5f140b784 (patch) | |
tree | c50e19f2b873441672b20a7e339c176d9a4a7cbf /unit-tests/demo.c | |
parent | 39cbdfb56e80cabbd67754d8d77f781e14eaa3da (diff) | |
parent | 3165a97a06f891622b913714bc4f8ca54565f9cc (diff) | |
download | python-dmidecode-eb08fd406370a81172d7fdd0663233a5f140b784.tar.gz python-dmidecode-eb08fd406370a81172d7fdd0663233a5f140b784.tar.xz python-dmidecode-eb08fd406370a81172d7fdd0663233a5f140b784.zip |
Merge commit 'nima/xml'
Conflicts:
debian/changelog
Had the same changelog entry in both xml and master
branch, with a minor wording difference. Removed the
duplicate and merged in the changelog entries from the
XML branch
src/dmidecode.c
Merge process got confused by some functions which was not
changed. Removed the code coming from the master branch and
let the XML be the base.
src/setup-dbg.py
src/setup.py
In the XML branch, the version of the python-dmidecode is
now a function which retrieves the version number from
src/version.h. Merged in this feature to master as well.
Diffstat (limited to 'unit-tests/demo.c')
-rw-r--r-- | unit-tests/demo.c | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/unit-tests/demo.c b/unit-tests/demo.c new file mode 100644 index 0000000..265f3cb --- /dev/null +++ b/unit-tests/demo.c @@ -0,0 +1,99 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * For the avoidance of doubt the "preferred form" of this code is one which + * is in an open unpatent encumbered format. Where cryptographic key signing + * forms part of the process of creating an executable the information + * including keys needed to generate an equivalently functional executable + * are deemed to be part of the source code. + */ + +#include "demo.h" + +xmlNode *gen_nodes(const char *entry ) { + xmlNode *c_xmlNode_root = NULL; + xmlNode *c_xmlNode_tag = NULL; + + // Prepare a root node + c_xmlNode_root = xmlNewNode(NULL, (xmlChar *) "dmixml_demo"); + assert( c_xmlNode_root != NULL ); + + dmixml_AddAttribute(c_xmlNode_root, "entrypoint", "%s", entry); + + // Populate XML + dmixml_AddTextChild(c_xmlNode_root, "Test", "Yes, just testing"); + + c_xmlNode_tag = dmixml_AddTextChild(c_xmlNode_root, "tag1", "Another test"); + dmixml_AddAttribute(c_xmlNode_tag, "TestTagID", "%i", 1); + + c_xmlNode_tag = c_xmlNode_root; + int i; + for(i = 0; i <= 3; ++i) { + c_xmlNode_tag = xmlNewChild(c_xmlNode_tag, NULL, (xmlChar *) "subtag", NULL); + dmixml_AddAttribute(c_xmlNode_tag, "SubLevel", "%i", i); + } + dmixml_AddTextContent(c_xmlNode_tag, "%s - Adding data to the tag at sublevel %i", "TEST", i-1); + + return c_xmlNode_root; +} + + + + +PyObject* demo_dump_doc() { + PyObject *py_xmlDoc = NULL; + xmlDoc *c_xmlDoc = NULL; + + // Create an XML document + c_xmlDoc = xmlNewDoc((xmlChar *) "1.0"); + assert( c_xmlDoc != NULL ); + + // Generate XML nodes and assign the root node to the document + xmlDocSetRootElement( c_xmlDoc, gen_nodes("demo_dump_doc") ); + + py_xmlDoc = libxml_xmlDocPtrWrap((xmlDocPtr) c_xmlDoc); + Py_INCREF(py_xmlDoc); + + return py_xmlDoc; +} + +PyObject* demo_dump_node() { + PyObject *py_xmlNode = NULL; + xmlNode *nodes = NULL; + + nodes = gen_nodes("demo_dump_node"); + py_xmlNode = libxml_xmlNodePtrWrap((xmlNodePtr) nodes); + Py_INCREF(py_xmlNode); + + return py_xmlNode; +} + + + +static PyMethodDef DemoMethods[] = { + { "dump_doc", demo_dump_doc, METH_NOARGS, (char *)"Return an XML document" }, + { "dump_node", demo_dump_node, METH_NOARGS, (char *)"Retuen an XML node" }, + { NULL, NULL, 0, NULL } +}; + +PyMODINIT_FUNC initdemomodule(void) { + PyObject *module = + Py_InitModule3((char *)"demomodule", DemoMethods, + "LibXML2 DMIDecode Proof-of-Concept Python Module"); + + PyObject *version = PyString_FromString("0.10"); + Py_INCREF(version); + PyModule_AddObject(module, "version", version); +} |