@@ -118,10 +118,10 @@ static int check_attr() {
118
118
{
119
119
base_settings_t s;
120
120
std::vector<attr_t ::zero_points_t > &zp = s.zero_points ;
121
- SELF_CHECK_EQ ( parse_attributes (s, def,
122
- " --attr-zero-points=src:common:0+wei:per_oc+dst:"
123
- " common:-2,src: per_dim_1" ),
124
- true );
121
+ std::string content_to_parse (
122
+ " --attr-zero-points=src:common:0+wei:per_oc+dst:common:-2,src :"
123
+ " per_dim_1" );
124
+ SELF_CHECK_EQ ( parse_attributes (s, def, content_to_parse. c_str ()), true );
125
125
SELF_CHECK_EQ (zp.size (), 2 );
126
126
const std::vector<dnnl_dim_t > def_g {};
127
127
SELF_CHECK_ATTR_ZP (
@@ -138,11 +138,10 @@ static int check_attr() {
138
138
{
139
139
base_settings_t s;
140
140
std::vector<attr_t ::arg_scales_t > &sc = s.scales ;
141
+ std::string content_to_parse (
142
+ " --attr-scales=src:common:1.5+wei:per_oc+src:common:0.5" );
141
143
// `src` scale is overridden with the latter value.
142
- SELF_CHECK_EQ (parse_attributes (s, def,
143
- " --attr-scales=src:common:1.5+wei:per_oc+src:"
144
- " common:0.5" ),
145
- true );
144
+ SELF_CHECK_EQ (parse_attributes (s, def, content_to_parse.c_str ()), true );
146
145
SELF_CHECK_EQ (sc.size (), 1 );
147
146
SELF_CHECK_EQ (sc[0 ].get (DNNL_ARG_SRC).policy , policy_t ::COMMON);
148
147
SELF_CHECK_EQ (sc[0 ].get (DNNL_ARG_SRC).scale , 0 .5f );
@@ -153,9 +152,9 @@ static int check_attr() {
153
152
{
154
153
base_settings_t s;
155
154
std::vector<attr_t ::arg_scales_t > &sc = s.scales ;
156
- SELF_CHECK_EQ ( parse_attributes (s, def,
157
- " --attr-scales=src:common:2.5+src1:common:1.5" ),
158
- true );
155
+ std::string content_to_parse (
156
+ " --attr-scales=src:common:2.5+src1:common:1.5" );
157
+ SELF_CHECK_EQ ( parse_attributes (s, def, content_to_parse. c_str ()), true );
159
158
SELF_CHECK_EQ (sc.size (), 1 );
160
159
SELF_CHECK_EQ (sc[0 ].get (DNNL_ARG_SRC_0).policy , policy_t ::COMMON);
161
160
SELF_CHECK_EQ (sc[0 ].get (DNNL_ARG_SRC_0).scale , 2.5 );
@@ -166,9 +165,8 @@ static int check_attr() {
166
165
{
167
166
base_settings_t s;
168
167
std::vector<attr_t ::zero_points_t > &zp = s.zero_points ;
169
- SELF_CHECK_EQ (parse_attributes (
170
- s, def, " --attr-zero-points=wei:per_ocic:s8:2x1" ),
171
- true );
168
+ std::string content_to_parse (" --attr-zero-points=wei:per_ocic:s8:2x1" );
169
+ SELF_CHECK_EQ (parse_attributes (s, def, content_to_parse.c_str ()), true );
172
170
SELF_CHECK_EQ (zp.size (), 1 );
173
171
std::vector<dnnl_dim_t > groups = {2 , 1 };
174
172
SELF_CHECK_ATTR_ZP (zp[0 ], DNNL_ARG_WEIGHTS, policy_t ::PER_OCIC, 0 ,
@@ -178,9 +176,9 @@ static int check_attr() {
178
176
{
179
177
base_settings_t s;
180
178
std::vector<attr_t ::arg_scales_t > &sc = s.scales ;
181
- SELF_CHECK_EQ ( parse_attributes (s, def,
182
- " --attr-scales=attr_post_op_dw_wei:common:2" ),
183
- true );
179
+ std::string content_to_parse (
180
+ " --attr-scales=attr_post_op_dw_wei:common:2" );
181
+ SELF_CHECK_EQ ( parse_attributes (s, def, content_to_parse. c_str ()), true );
184
182
SELF_CHECK_EQ (sc.size (), 1 );
185
183
const auto arg = DNNL_ARG_ATTR_POST_OP_DW | DNNL_ARG_WEIGHTS;
186
184
SELF_CHECK_EQ (sc[0 ].get (arg).policy , policy_t ::COMMON);
@@ -191,7 +189,8 @@ static int check_attr() {
191
189
{
192
190
base_settings_t s;
193
191
std::vector<attr_t ::post_ops_t > &po = s.post_ops ;
194
- auto st = parse_attributes (s, def, " --attr-post-ops=dw:k3s1p1" );
192
+ std::string content_to_parse (" --attr-post-ops=dw:k3s1p1" );
193
+ auto st = parse_attributes (s, def, content_to_parse.c_str ());
195
194
SELF_CHECK_EQ (st, true );
196
195
SELF_CHECK_EQ (po[0 ].len (), 1 );
197
196
const auto &e = po[0 ].entry [0 ];
@@ -206,8 +205,9 @@ static int check_attr() {
206
205
{
207
206
base_settings_t s;
208
207
std::vector<attr_t ::post_ops_t > &po = s.post_ops ;
209
- auto st = parse_attributes (
210
- s, def, " --attr-post-ops=relu:0.5+dw:k3s2p1:s8+linear:2:1" );
208
+ std::string content_to_parse (
209
+ " --attr-post-ops=relu:0.5+dw:k3s2p1:s8+linear:2:1" );
210
+ auto st = parse_attributes (s, def, content_to_parse.c_str ());
211
211
SELF_CHECK_EQ (st, true );
212
212
SELF_CHECK_EQ (po[0 ].len (), 3 );
213
213
auto &e = po[0 ].entry [0 ];
@@ -236,7 +236,8 @@ static int check_attr() {
236
236
{
237
237
base_settings_t s;
238
238
std::vector<attr_t ::fpmath_mode_t > &fm = s.fpmath_mode ;
239
- auto st = parse_attributes (s, def, " --attr-fpmath=strict:true" );
239
+ std::string content_to_parse (" --attr-fpmath=strict:true" );
240
+ auto st = parse_attributes (s, def, content_to_parse.c_str ());
240
241
SELF_CHECK_EQ (st, true );
241
242
SELF_CHECK_EQ (fm[0 ].mode , dnnl_fpmath_mode_strict);
242
243
SELF_CHECK_EQ (fm[0 ].apply_to_int , true );
@@ -245,7 +246,8 @@ static int check_attr() {
245
246
{
246
247
base_settings_t s;
247
248
std::vector<attr_t ::fpmath_mode_t > &fm = s.fpmath_mode ;
248
- auto st = parse_attributes (s, def, " --attr-fpmath=bf16" );
249
+ std::string content_to_parse (" --attr-fpmath=bf16" );
250
+ auto st = parse_attributes (s, def, content_to_parse.c_str ());
249
251
SELF_CHECK_EQ (st, true );
250
252
SELF_CHECK_EQ (fm[0 ].mode , dnnl_fpmath_mode_bf16);
251
253
SELF_CHECK_EQ (fm[0 ].apply_to_int , false );
@@ -257,7 +259,8 @@ static int check_attr() {
257
259
std::vector<attr_t ::fpmath_mode_t > &fm = s.fpmath_mode ;
258
260
def.fpmath_mode .emplace_back ();
259
261
def.fpmath_mode [0 ].set (dnnl_fpmath_mode_bf16, true );
260
- auto st = parse_attributes (s, def, " --attr-fpmath=" );
262
+ std::string content_to_parse (" --attr-fpmath=" );
263
+ auto st = parse_attributes (s, def, content_to_parse.c_str ());
261
264
SELF_CHECK_EQ (st, true );
262
265
SELF_CHECK_EQ (fm[0 ].mode , dnnl_fpmath_mode_bf16);
263
266
SELF_CHECK_EQ (fm[0 ].apply_to_int , true );
@@ -268,7 +271,8 @@ static int check_attr() {
268
271
{
269
272
base_settings_t s;
270
273
std::vector<attr_t ::dropout_t > &d = s.dropout ;
271
- auto st = parse_attributes (s, def, " --attr-dropout=0.5:12345:axb" );
274
+ std::string content_to_parse (" --attr-dropout=0.5:12345:axb" );
275
+ auto st = parse_attributes (s, def, content_to_parse.c_str ());
272
276
SELF_CHECK_EQ (st, true );
273
277
SELF_CHECK_EQ (d[0 ].p , 0 .5f );
274
278
SELF_CHECK_EQ (d[0 ].seed , 12345 );
@@ -278,7 +282,8 @@ static int check_attr() {
278
282
{
279
283
base_settings_t s;
280
284
std::vector<attr_t ::dropout_t > &d = s.dropout ;
281
- auto st = parse_attributes (s, def, " --attr-dropout=0.75" );
285
+ std::string content_to_parse (" --attr-dropout=0.75" );
286
+ auto st = parse_attributes (s, def, content_to_parse.c_str ());
282
287
SELF_CHECK_EQ (st, true );
283
288
SELF_CHECK_EQ (d[0 ].p , 0 .75f );
284
289
SELF_CHECK_EQ (d[0 ].seed , 0 );
@@ -288,7 +293,8 @@ static int check_attr() {
288
293
{
289
294
base_settings_t s;
290
295
std::vector<attr_t ::dropout_t > &d = s.dropout ;
291
- auto st = parse_attributes (s, def, " --attr-dropout=" );
296
+ std::string content_to_parse (" --attr-dropout=" );
297
+ auto st = parse_attributes (s, def, content_to_parse.c_str ());
292
298
SELF_CHECK_EQ (st, true );
293
299
SELF_CHECK_EQ (d[0 ].p , 0 .f );
294
300
SELF_CHECK_EQ (d[0 ].seed , 0 );
@@ -298,8 +304,8 @@ static int check_attr() {
298
304
{
299
305
base_settings_t s;
300
306
std::vector<attr_t ::rounding_mode_t > &rm = s.rounding_mode ;
301
- auto st = parse_attributes (
302
- s, def, " --attr-rounding-mode=dst:stochastic " );
307
+ std::string content_to_parse ( " --attr-rounding-mode=dst:stochastic " );
308
+ auto st = parse_attributes ( s, def, content_to_parse. c_str () );
303
309
SELF_CHECK_EQ (st, true );
304
310
SELF_CHECK_EQ (rm[0 ].get (DNNL_ARG_DST), dnnl_rounding_mode_stochastic);
305
311
SELF_CHECK_EQ (rm[0 ].get (DNNL_ARG_SRC), dnnl_rounding_mode_environment);
0 commit comments