2001-10-10 Dave Peticolas <dave@krondo.com>

* src/engine/test-core/test-engine-stuff.c
	(get_random_kvp_frame_depth): use set kvp max elements number

	* src/engine/Account.c (xaccAccountEqual): add warning strings

	* src/engine/Group.c (xaccGroupEqual): add warning strings

	* src/engine/gnc-book.c (gnc_book_equal): add warning strings

	* src/engine/kvp_frame.c: treat empty frames as NULL

	* src/backend/postgres/test/run-tests.sh: enable test

	* src/backend/postgres/test/test-db.c (main): enable test

	* src/backend/file/test/test-kvp-frames.c (test_kvp_xml_stuff):
	print more debugging output

	* src/backend/file/sixtp-dom-generators.c (add_kvp_value_node):
	fix bug generating kvp string values (they weren't being escaped)


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5490 57a11ea4-9604-0410-9ed3-97b8803252fd
zzzoldfeatures/g2-gog-integ
Dave Peticolas 25 years ago
parent ecc9f2e4ce
commit df3be03bd4

@ -1,3 +1,26 @@
2001-10-10 Dave Peticolas <dave@krondo.com>
* src/engine/test-core/test-engine-stuff.c
(get_random_kvp_frame_depth): use set kvp max elements number
* src/engine/Account.c (xaccAccountEqual): add warning strings
* src/engine/Group.c (xaccGroupEqual): add warning strings
* src/engine/gnc-book.c (gnc_book_equal): add warning strings
* src/engine/kvp_frame.c: treat empty frames as NULL
* src/backend/postgres/test/run-tests.sh: enable test
* src/backend/postgres/test/test-db.c (main): enable test
* src/backend/file/test/test-kvp-frames.c (test_kvp_xml_stuff):
print more debugging output
* src/backend/file/sixtp-dom-generators.c (add_kvp_value_node):
fix bug generating kvp string values (they weren't being escaped)
2001-10-09 Robert Graham Merkel <rgmerk@mira.net>
* src/engine/Transaction.{ch} (xaccTransGetVoidTime): new function.
@ -16,8 +39,8 @@
* src/engine/test/test-transaction-voiding.c: new file.
* src/engine/Transaction.c: debugging stuff for transaction voiding (will be removed
later).
* src/engine/Transaction.c: debugging stuff for transaction
voiding (will be removed later).
2001-10-03 Christian Stimming <stimming@tuhh.de>
@ -34,8 +57,8 @@
* configure.in: changes for automake 1.5 compatibility
* src/engine/transaction.c: store values as well as amounts in voided splits'
kvp frames
* src/engine/transaction.c: store values as well as amounts in
voided splits' kvp frames
* src/engine/gw-engine-spec.scm: wrap voiding functions
@ -43,16 +66,20 @@
convenience functions for adding voiding checks to queries and
checking the voiding status of splits.
* src/report/standard-reports/*: fixed up queries to exclude voids as appropriate.
* src/report/standard-reports/*: fixed up queries to exclude voids
as appropriate.
2001-10-01 Robert Graham Merkel <rgmerk@mira.net>
* src/engine/Transaction.{ch} (xaccTransVoid), (xaccTransGetVoidStatus),
(xaccTransGetVoidReason), (xaccSplitVoidFormerAmount): new functions.
* src/engine/Transaction.{ch} (xaccTransVoid),
(xaccTransGetVoidStatus), (xaccTransGetVoidReason),
(xaccSplitVoidFormerAmount): new functions.
* src/engine/kvp_doc.txt: add new entries related to transaction voiding.
* src/engine/kvp_doc.txt: add new entries related to transaction
voiding.
* src/engine/Query.{ch}: add support for filtering queries on voided state.
* src/engine/Query.{ch}: add support for filtering queries on
voided state.
2001-09-30 Josh Sled <jsled@asynchronous.org>
@ -74,13 +101,13 @@
2001-09-28 Robert Graham Merkel <rgmerk@mira.net>
* src/app-utils/date-utilities.scm ((gnc:deltasym-to-delta)): new function
to convert datedelta symbols to the actual deltas.
* src/app-utils/date-utilities.scm ((gnc:deltasym-to-delta)): new
function to convert datedelta symbols to the actual deltas.
* src/app-utils/app-utils.scm: export gnc:deltasym-to-delta
* src/report/standard-reports/net-barchart.scm (etc.): replace eval usage
with gnc:deltasym-to-delta
* src/report/standard-reports/net-barchart.scm (etc.): replace
eval usage with gnc:deltasym-to-delta
2001-09-21 Robert Graham Merkel <rgmerk@mira.net>

@ -246,8 +246,14 @@ add_kvp_value_node(xmlNodePtr node, gchar *tag, kvp_value* val)
{
xmlNodePtr val_node;
gchar *tmp_str1;
kvp_value_t kvp_type;
val_node = xmlNewTextChild(node, NULL, tag, NULL);
kvp_type = kvp_value_get_type(val);
if (kvp_type == KVP_TYPE_STRING)
val_node = xmlNewTextChild(node, NULL, tag, kvp_value_get_string(val));
else
val_node = xmlNewTextChild(node, NULL, tag, NULL);
switch(kvp_value_get_type(val))
{
@ -267,7 +273,6 @@ add_kvp_value_node(xmlNodePtr node, gchar *tag, kvp_value* val)
break;
case KVP_TYPE_STRING:
xmlSetProp(val_node, "type", "string");
xmlNodeSetContent(val_node, kvp_value_get_string(val));
break;
case KVP_TYPE_GUID:
add_text_to_node(val_node,"guid",

@ -189,11 +189,14 @@ test_kvp_xml_stuff(void)
{
gchar *tmp;
failure("xml stuff");
printf(" with xml:\n");
tmp = kvp_frame_to_string(test_frame1);
printf(" with kvp_frame 1:\n%s\n", tmp);
g_free(tmp);
printf(" and xml:\n");
xmlElemDump(stdout, NULL, test_node);
printf("\n");
tmp = kvp_frame_to_string(test_frame2);
printf(" and kvp_frame:\n%s\n", tmp);
printf(" and kvp_frame 2:\n%s\n", tmp);
g_free(tmp);
}
kvp_frame_delete(test_frame2);

@ -1,6 +1,6 @@
#!/bin/sh
exit 0
#exit 0
EXIT_VALUE=0
@ -12,6 +12,6 @@ EXIT_VALUE=0
if test $EXIT_VALUE != 0; then exit $EXIT_VALUE; fi
#./db-control.sh destroy
./db-control.sh destroy
exit $EXIT_VALUE

@ -98,7 +98,7 @@ guile_main (int argc, char **argv)
int
main (int argc, char ** argv)
{
getchar ();
/* getchar (); */
gh_enter (argc, argv, guile_main);

@ -392,23 +392,69 @@ xaccAccountGetVersion (Account *acc)
\********************************************************************/
gboolean
xaccAccountEqual(Account *aa, Account *ab, gboolean check_guids) {
xaccAccountEqual(Account *aa, Account *ab, gboolean check_guids)
{
if(!aa && !ab) return TRUE;
if(!aa) return FALSE;
if(!ab) return FALSE;
if(aa->type != ab->type) return FALSE;
if(!aa || !ab)
{
PWARN ("one is NULL");
return FALSE;
}
if (aa->type != ab->type)
{
PWARN ("types differ");
return FALSE;
}
if (safe_strcmp(aa->accountName, ab->accountName) != 0)
{
PWARN ("names differ: %s vs %s", aa->accountName, ab->accountName);
return FALSE;
}
if(safe_strcmp(aa->accountName, ab->accountName) != 0) return FALSE;
if(safe_strcmp(aa->accountCode, ab->accountCode) != 0) return FALSE;
if(safe_strcmp(aa->description, ab->description) != 0) return FALSE;
if(!gnc_commodity_equiv(aa->commodity, ab->commodity)) return FALSE;
if (safe_strcmp(aa->accountCode, ab->accountCode) != 0)
{
PWARN ("codes differ: %s vs %s", aa->accountCode, ab->accountCode);
return FALSE;
}
if (safe_strcmp(aa->description, ab->description) != 0)
{
PWARN ("descriptions differ: %s vs %s", aa->description, ab->description);
return FALSE;
}
if (!gnc_commodity_equiv(aa->commodity, ab->commodity))
{
PWARN ("commodities differ");
return FALSE;
}
if(check_guids) {
if(!guid_equal(&aa->guid, &ab->guid)) return FALSE;
if(!guid_equal(&aa->guid, &ab->guid))
{
PWARN ("GUIDs differ");
return FALSE;
}
}
if(kvp_frame_compare(aa->kvp_data, ab->kvp_data) != 0) return FALSE;
if (kvp_frame_compare(aa->kvp_data, ab->kvp_data) != 0)
{
char *frame_a;
char *frame_b;
frame_a = kvp_frame_to_string (aa->kvp_data);
frame_b = kvp_frame_to_string (ab->kvp_data);
PWARN ("kvp frames differ:\n%s\n\nvs\n\n%s", frame_a, frame_b);
g_free (frame_a);
g_free (frame_b);
return FALSE;
}
/* no parent; always compare downwards. */
@ -416,22 +462,43 @@ xaccAccountEqual(Account *aa, Account *ab, gboolean check_guids) {
GList *la = aa->splits;
GList *lb = ab->splits;
if( la && !lb) return FALSE;
if(!la && lb) return FALSE;
if(la && lb) {
if ((la && !lb) || (!la && lb))
{
PWARN ("only one has splits");
return FALSE;
}
if(la && lb)
{
/* presume that the splits are in the same order */
while(la && lb) {
while (la && lb)
{
Split *sa = (Split *) la->data;
Split *sb = (Split *) lb->data;
if(!xaccSplitEqual(sa, sb, check_guids, FALSE)) return(FALSE);
if (!xaccSplitEqual(sa, sb, check_guids, FALSE))
{
PWARN ("splits differ");
return(FALSE);
}
la = la->next;
lb = lb->next;
}
if((la != NULL) || (lb != NULL)) return(FALSE);
if ((la != NULL) || (lb != NULL))
{
PWARN ("number of splits differs");
return(FALSE);
}
}
}
if(!xaccGroupEqual(aa->children, ab->children, check_guids)) return FALSE;
if (!xaccGroupEqual(aa->children, ab->children, check_guids))
{
PWARN ("children differ");
return FALSE;
}
return(TRUE);
}

@ -103,28 +103,42 @@ xaccGroupEqual(AccountGroup *ga,
GList *nb;
if (!ga && !gb) return(TRUE);
if (!ga) return(FALSE);
if (!gb) return(FALSE);
if (!ga || !gb)
{
PWARN ("one is NULL");
return(FALSE);
}
na = ga->accounts;
nb = gb->accounts;
if (!na && nb) return(FALSE);
if (na && !nb) return(FALSE);
if ((!na && nb) || (na && !nb))
{
PWARN ("only one has accounts");
return(FALSE);
}
while (na && nb)
{
Account *aa = na->data;
Account *ab = nb->data;
if (!xaccAccountEqual(aa, ab, check_guids)) return(FALSE);
if (!xaccAccountEqual(aa, ab, check_guids))
{
PWARN ("accounts differ");
return(FALSE);
}
na = na->next;
nb = nb->next;
}
if (na) return(FALSE);
if (nb) return(FALSE);
if (na || nb)
{
PWARN ("different numbers of accounts");
return(FALSE);
}
return(TRUE);
}

@ -314,11 +314,17 @@ gnc_book_equal (GNCBook *book_1, GNCBook *book_2)
if (!xaccGroupEqual (gnc_book_get_group (book_1),
gnc_book_get_group (book_2),
TRUE))
{
PWARN ("groups differ");
return FALSE;
}
if (!gnc_pricedb_equal (gnc_book_get_pricedb (book_1),
gnc_book_get_pricedb (book_2)))
{
PWARN ("price dbs differ");
return FALSE;
}
/* FIXME: do scheduled transactions and template group */

@ -945,7 +945,14 @@ kvp_frame_compare(const kvp_frame *fa, const kvp_frame *fb) {
kvp_frame_for_each_slot((kvp_frame *) fa, kvp_frame_compare_helper, &status);
return(status.compare);
if (status.compare != 0)
return status.compare;
status.other_frame = (kvp_frame *) fa;
kvp_frame_for_each_slot((kvp_frame *) fb, kvp_frame_compare_helper, &status);
return(-status.compare);
}
gchar*
@ -1087,7 +1094,8 @@ kvp_frame_to_string(const kvp_frame *frame)
tmp1 = g_strdup_printf("{\n");
g_hash_table_foreach(frame->hash, kvp_frame_to_string_helper, &tmp1);
if (frame->hash)
g_hash_table_foreach(frame->hash, kvp_frame_to_string_helper, &tmp1);
{
gchar *tmp2;

@ -256,7 +256,7 @@ get_random_kvp_frame_depth (gint depth)
ret = kvp_frame_new();
vals_to_add = get_random_int_in_range(1,10);
vals_to_add = get_random_int_in_range(1,kvp_frame_max_elements);
for(;vals_to_add > 0; vals_to_add--)
{
@ -270,6 +270,11 @@ get_random_kvp_frame_depth (gint depth)
{
return NULL;
}
if (!val)
{
vals_to_add++;
continue;
}
kvp_frame_set_slot_nc(ret, key, val);

@ -207,9 +207,11 @@ static char random_chars[] =
"abcdefghijklmnopqrstuvwxyz"
"1234567890"
" "
/* ",.'\"`~!@#$%^*(){}[]/=?+-_\\|" */
/* "<>&" */
/* "\n\t" */
#if 0
",.'\"`~!@#$%^*(){}[]/=?+-_\\|"
"<>&"
"\n\t"
#endif
"";
gchar

Loading…
Cancel
Save