source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/SelfTest/src/main.cpp @ 128

Last change on this file since 128 was 128, checked in by rosiere, 15 years ago

1) Correct bug in link two signal
2) Fix error detected with valgrind
3) modif distexe script

  • Property svn:keywords set to Id
File size: 5.0 KB
Line 
1/*
2 * $Id: main.cpp 128 2009-06-26 08:43:23Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/SelfTest/include/test.h"
9
10#define NB_PARAMS 16
11
12void usage (int argc, char * argv[])
13{
14  err (_("<Usage> %s name_instance list_params.\n"),argv[0]);
15  err (_("list_params is :\n"));
16  err (_(" * size_context_id                            (uint32_t         )\n"));
17  err (_(" * size_front_end_id                          (uint32_t         )\n"));
18  err (_(" * size_packet_id                             (uint32_t         )\n"));
19  err (_(" * size_queue                                 (uint32_t         )\n"));
20  err (_(" * nb_execute_loop                            (uint32_t         )\n"));
21  err (_(" * nb_inst_execute          [nb_execute_loop] (uint32_t         )\n"));
22  err (_(" * nb_inst_commit                             (uint32_t         )\n"));
23  err (_(" * nb_inst_reexecute                          (uint32_t         )\n"));
24  err (_(" * nb_inst_reexecute_commit                   (uint32_t         )\n"));
25  err (_(" * nb_execute_loop_select                     (uint32_t         )\n"));
26  err (_(" * priority                                   (Tpriority_t      )\n"));
27  err (_(" * load_balancing                             (Tload_balancing_t)\n"));
28  err (_(" * size_general_register_id                   (uint32_t         )\n"));
29  err (_(" * size_special_register_id                   (uint32_t         )\n"));
30  err (_(" * size_general_data                          (uint32_t         )\n"));
31  err (_(" * size_special_data                          (uint32_t         )\n"));
32  err (_(" * size_store_queue_ptr                       (uint32_t         )\n"));
33  err (_(" * size_load_queue_ptr                        (uint32_t         )\n"));
34
35  exit (1);
36}
37
38#ifndef SYSTEMC
39int main    (int argc, char * argv[])
40#else
41int sc_main (int argc, char * argv[])
42#endif
43{
44  if (argc <= static_cast<int>(2+NB_PARAMS))
45    usage (argc, argv);
46
47  uint32_t x = 1;
48
49  string name = argv[x++];
50  uint32_t            _size_context_id          = fromString<uint32_t         >(argv[x++]);
51  uint32_t            _size_front_end_id        = fromString<uint32_t         >(argv[x++]);
52  uint32_t            _size_packet_id           = fromString<uint32_t         >(argv[x++]);
53  uint32_t            _size_queue               = fromString<uint32_t         >(argv[x++]);
54  uint32_t            _nb_execute_loop          = fromString<uint32_t         >(argv[x++]);
55
56  if (argc != static_cast<int>(2+NB_PARAMS+_nb_execute_loop))
57    usage (argc, argv);
58
59  uint32_t          * _nb_inst_execute          = new uint32_t [_nb_execute_loop];
60  for (uint32_t i=0; i<_nb_execute_loop; i++)
61    _nb_inst_execute [i] = fromString<uint32_t>(argv[x++]);
62
63  uint32_t            _nb_inst_commit           = fromString<uint32_t         >(argv[x++]);
64  uint32_t            _nb_inst_reexecute        = fromString<uint32_t         >(argv[x++]);
65  uint32_t            _nb_execute_loop_select   = fromString<uint32_t         >(argv[x++]);
66  Tpriority_t         _priority                 = fromString<Tpriority_t      >(argv[x++]);
67  Tload_balancing_t   _load_balancing           = fromString<Tload_balancing_t>(argv[x++]);
68  uint32_t            _size_general_register_id = fromString<uint32_t         >(argv[x++]);
69  uint32_t            _size_special_register_id = fromString<uint32_t         >(argv[x++]);
70  uint32_t            _size_general_data        = fromString<uint32_t         >(argv[x++]);
71  uint32_t            _size_special_data        = fromString<uint32_t         >(argv[x++]);
72  uint32_t            _size_store_queue_ptr     = fromString<uint32_t         >(argv[x++]);
73  uint32_t            _size_load_queue_ptr      = fromString<uint32_t         >(argv[x++]);
74
75  int _return = EXIT_SUCCESS;
76  try 
77    {
78      morpheo::behavioural::core::multi_ooo_engine::ooo_engine::reexecute_unit::Parameters * param = new morpheo::behavioural::core::multi_ooo_engine::ooo_engine::reexecute_unit::Parameters
79        (
80         _size_context_id         ,
81         _size_front_end_id       ,
82         _size_packet_id          ,
83         _size_queue              ,
84         _nb_execute_loop         ,
85         _nb_inst_execute         ,
86         _nb_inst_commit          ,
87         _nb_inst_reexecute       ,
88         _nb_execute_loop_select  ,
89         _priority                ,
90         _load_balancing          ,
91         _size_general_register_id,
92         _size_special_register_id,
93         _size_general_data       ,
94         _size_special_data       ,
95         _size_store_queue_ptr    ,
96         _size_load_queue_ptr     ,
97         true //is_toplevel
98        );
99     
100      msg(_("%s"),param->print(0).c_str());
101     
102      test (name,param);
103
104      delete param;
105    }
106  catch (morpheo::ErrorMorpheo & error)
107    {
108      msg (_("<%s> :\n%s"),name.c_str(), error.what ());
109      _return = EXIT_FAILURE;
110    }
111 
112  try 
113    {
114      if (_return == EXIT_SUCCESS)
115        TEST_OK("Reexecute_unit : no error");
116      else
117        TEST_KO("Reexecute_unit : a lot of error");
118    }
119  catch (morpheo::ErrorMorpheo & error)
120    {
121//       msg (_("<%s> :\n%s"),name.c_str(), error.what ());
122      _return = EXIT_FAILURE;
123    }
124
125  delete [] _nb_inst_execute;
126
127  return (_return);
128}
Note: See TracBrowser for help on using the repository browser.