Software test is all about breaking the application, which can be hard sometimes when there is an emotional attachment.
My colleague Peter and previous interns working on the project have done a great job and their code is working fine. For my part, i need to make sure p3muka, the user project management application does its job.
Http::Client and Curl
Before the access_token expires, a batch project file sync is initiated. Since the upload is handled completely by WResource, it is fast and stateless. However, it is necessary that curl command is used instead of the Http::Client while communicating with the cloud service. The reason being that Client is asynchronous, and a response from WResource to storage frontend will be lost in the process of awaiting respond from GDrive.
In short, it is not a wise idea to use Client in a WResource.
Wt::Dbo – database is locked
This exception appeared while I was testing the software. I did some study about sqlite3 and the problem is discussed here. What really happened in my program was that a transaction was started somewhere else and another separate transaction was trying to write to it. Sqlite3 prevents this because an EXCLUSIVE lock must be obtained to perform write operation. An EXCLUSIVE lock can only exist one at a time and cannot be shared with any other locks (SHARED, PENDING, etc).