1*424fb153SAndroid Build Coastguard Worker // Copyright 2006 Google Inc. All Rights Reserved.
2*424fb153SAndroid Build Coastguard Worker
3*424fb153SAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License");
4*424fb153SAndroid Build Coastguard Worker // you may not use this file except in compliance with the License.
5*424fb153SAndroid Build Coastguard Worker // You may obtain a copy of the License at
6*424fb153SAndroid Build Coastguard Worker
7*424fb153SAndroid Build Coastguard Worker // http://www.apache.org/licenses/LICENSE-2.0
8*424fb153SAndroid Build Coastguard Worker
9*424fb153SAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software
10*424fb153SAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS,
11*424fb153SAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*424fb153SAndroid Build Coastguard Worker // See the License for the specific language governing permissions and
13*424fb153SAndroid Build Coastguard Worker // limitations under the License.
14*424fb153SAndroid Build Coastguard Worker
15*424fb153SAndroid Build Coastguard Worker // sat.cc : a stress test for stressful testing
16*424fb153SAndroid Build Coastguard Worker
17*424fb153SAndroid Build Coastguard Worker #include "sattypes.h"
18*424fb153SAndroid Build Coastguard Worker #include "sat.h"
19*424fb153SAndroid Build Coastguard Worker
main(int argc,char ** argv)20*424fb153SAndroid Build Coastguard Worker int main(int argc, char **argv) {
21*424fb153SAndroid Build Coastguard Worker Sat *sat = SatFactory();
22*424fb153SAndroid Build Coastguard Worker if (sat == NULL) {
23*424fb153SAndroid Build Coastguard Worker logprintf(0, "Process Error: failed to allocate Sat object\n");
24*424fb153SAndroid Build Coastguard Worker return 255;
25*424fb153SAndroid Build Coastguard Worker }
26*424fb153SAndroid Build Coastguard Worker
27*424fb153SAndroid Build Coastguard Worker if (!sat->ParseArgs(argc, argv)) {
28*424fb153SAndroid Build Coastguard Worker logprintf(0, "Process Error: Sat::ParseArgs() failed\n");
29*424fb153SAndroid Build Coastguard Worker sat->bad_status();
30*424fb153SAndroid Build Coastguard Worker } else if (!sat->Initialize()) {
31*424fb153SAndroid Build Coastguard Worker logprintf(0, "Process Error: Sat::Initialize() failed\n");
32*424fb153SAndroid Build Coastguard Worker sat->bad_status();
33*424fb153SAndroid Build Coastguard Worker } else if (!sat->Run()) {
34*424fb153SAndroid Build Coastguard Worker logprintf(0, "Process Error: Sat::Run() failed\n");
35*424fb153SAndroid Build Coastguard Worker sat->bad_status();
36*424fb153SAndroid Build Coastguard Worker }
37*424fb153SAndroid Build Coastguard Worker sat->PrintResults();
38*424fb153SAndroid Build Coastguard Worker if (!sat->Cleanup()) {
39*424fb153SAndroid Build Coastguard Worker logprintf(0, "Process Error: Sat::Cleanup() failed\n");
40*424fb153SAndroid Build Coastguard Worker sat->bad_status();
41*424fb153SAndroid Build Coastguard Worker }
42*424fb153SAndroid Build Coastguard Worker
43*424fb153SAndroid Build Coastguard Worker int retval;
44*424fb153SAndroid Build Coastguard Worker if (sat->status() != 0) {
45*424fb153SAndroid Build Coastguard Worker logprintf(0, "Process Error: Fatal issue encountered. See above logs for "
46*424fb153SAndroid Build Coastguard Worker "details.\n");
47*424fb153SAndroid Build Coastguard Worker retval = 1;
48*424fb153SAndroid Build Coastguard Worker } else if (sat->errors() != 0) {
49*424fb153SAndroid Build Coastguard Worker retval = 1;
50*424fb153SAndroid Build Coastguard Worker } else {
51*424fb153SAndroid Build Coastguard Worker retval = 0;
52*424fb153SAndroid Build Coastguard Worker }
53*424fb153SAndroid Build Coastguard Worker
54*424fb153SAndroid Build Coastguard Worker delete sat;
55*424fb153SAndroid Build Coastguard Worker return retval;
56*424fb153SAndroid Build Coastguard Worker }
57