-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 02/05/13 20:03, Igor Korot wrote: > How do people prove to their customers that no matter what the > software will either finish gracefully or will not break, crash or > anything to that matter?
That is easy - use SQLite. Put your work inside transactions. You can use savepoints to nest transactions. A transaction either fully completes, or has no effect. Even if your app is forcefully killed this will still hold. (The database will be cleaned up the next time it is opened removing information about the transaction that was under way.) On the other hand your code interacting with SQLite could have bugs. At a simple level you could ignore the error code returned by functions and assume they succeeded. The only way to test that is to add in hooks to cause various pieces to fail as needed, and use coverage analysis to help ensure you have tested a reasonable amount of code. An example of how thorough you can be is the SQLite testing: http://www.sqlite.org/testing.html All that aside, there is still no protection from a hostile environment. An overclocked/overheated cpu can make arithmetic errors. Cosmic rays can change bits in memory. Filesystems without checksums can have bit flips on the storage or in transmission. Roger -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlGDTf0ACgkQmOOfHg372QSuhgCfZaiQPow1ioBbZnez569/oVPt 3s0AoLdwcTPuEB8apk5Dv1VNpLS2bMXC =VYvk -----END PGP SIGNATURE----- _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users