From 3882d3d824f18139022865fad976793dd223a55a Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sat, 23 Oct 2021 20:18:09 -0400 Subject: [PATCH] placing all logs into same folder --- .../hellen/cypress/config/gen_config.sh | 2 +- .../hellen_cypress_gen_enum_to_string.sh | 2 +- .../boards/kinetis/config/gen_config.sh | 2 +- .../config/kinetis_gen_enum_to_string.sh | 2 +- .../boards/subaru_eg33/config/gen_config.sh | 2 +- .../subaru_eg33/config/gen_enum_to_string.sh | 2 +- firmware/gen_config_board.sh | 2 +- firmware/gen_enum_to_string.sh | 12 ++++++------ firmware/gen_live_documentation.sh | 2 +- firmware/gen_live_documentation_one_file.sh | 2 +- .../main/java/com/rusefi/util/SystemOut.java | 4 ++++ java_tools/ConfigDefinition.jar | Bin 3520609 -> 3520795 bytes .../java/com/rusefi/test/BitParsingTest.java | 3 ++- 13 files changed, 21 insertions(+), 16 deletions(-) diff --git a/firmware/config/boards/hellen/cypress/config/gen_config.sh b/firmware/config/boards/hellen/cypress/config/gen_config.sh index 6959b14e75..74b3427cb7 100644 --- a/firmware/config/boards/hellen/cypress/config/gen_config.sh +++ b/firmware/config/boards/hellen/cypress/config/gen_config.sh @@ -18,7 +18,7 @@ source gen_config_common.sh echo "Using COMMON_GEN_CONFIG [$COMMON_GEN_CONFIG]" java \ - -DSystemOut.name=gen_config_hellen_cypress \ + -DSystemOut.name=logs/gen_config_hellen_cypress \ $COMMON_GEN_CONFIG \ -cache hellen_cypress \ -tool hellen_cypress_gen_config.bat \ diff --git a/firmware/config/boards/hellen/cypress/config/hellen_cypress_gen_enum_to_string.sh b/firmware/config/boards/hellen/cypress/config/hellen_cypress_gen_enum_to_string.sh index 26eb903c3c..df7a5e6937 100644 --- a/firmware/config/boards/hellen/cypress/config/hellen_cypress_gen_enum_to_string.sh +++ b/firmware/config/boards/hellen/cypress/config/hellen_cypress_gen_enum_to_string.sh @@ -4,7 +4,7 @@ cd ../../../../.. -java -DSystemOut.name=gen_enum_to_string_hellen_cypress \ +java -DSystemOut.name=logs/gen_enum_to_string_hellen_cypress \ -jar ../java_tools/enum2string.jar \ -outputPath config/boards/hellen/cypress/config/controllers/algo \ -enumInputFile config/boards/hellen/cypress/rusefi_hw_enums.h diff --git a/firmware/config/boards/kinetis/config/gen_config.sh b/firmware/config/boards/kinetis/config/gen_config.sh index 0bd605f531..b2a580e0ac 100644 --- a/firmware/config/boards/kinetis/config/gen_config.sh +++ b/firmware/config/boards/kinetis/config/gen_config.sh @@ -18,7 +18,7 @@ source gen_config_common.sh echo "Using COMMON_GEN_CONFIG [$COMMON_GEN_CONFIG]" java \ - -DSystemOut.name=gen_config_kinetis \ + -DSystemOut.name=logs/gen_config_kinetis \ $COMMON_GEN_CONFIG \ -cache kinetis \ -tool kinetis_gen_config.bat \ diff --git a/firmware/config/boards/kinetis/config/kinetis_gen_enum_to_string.sh b/firmware/config/boards/kinetis/config/kinetis_gen_enum_to_string.sh index cf05d80f52..85e65b1455 100644 --- a/firmware/config/boards/kinetis/config/kinetis_gen_enum_to_string.sh +++ b/firmware/config/boards/kinetis/config/kinetis_gen_enum_to_string.sh @@ -2,7 +2,7 @@ cd ../../../.. -java -DSystemOut.name=gen_enum_to_string_kinetis \ +java -DSystemOut.name=logs/gen_enum_to_string_kinetis \ -jar ../java_tools/enum2string.jar \ -outputPath config/boards/kinetis/config/controllers/algo \ -enumInputFile config/boards/kinetis/rusefi_hw_enums.h diff --git a/firmware/config/boards/subaru_eg33/config/gen_config.sh b/firmware/config/boards/subaru_eg33/config/gen_config.sh index a29b63100b..cd5557487d 100755 --- a/firmware/config/boards/subaru_eg33/config/gen_config.sh +++ b/firmware/config/boards/subaru_eg33/config/gen_config.sh @@ -18,7 +18,7 @@ source gen_config_common.sh echo "Using COMMON_GEN_CONFIG [$COMMON_GEN_CONFIG]" java \ - -DSystemOut.name=gen_config_subaru_eg33 \ + -DSystemOut.name=logs/gen_config_subaru_eg33 \ $COMMON_GEN_CONFIG \ -cache ${SHORT_BOARDNAME} \ -tool ${BOARD_DIR}/config/gen_config.sh \ diff --git a/firmware/config/boards/subaru_eg33/config/gen_enum_to_string.sh b/firmware/config/boards/subaru_eg33/config/gen_enum_to_string.sh index 7f0b21f443..9b9d20bc52 100755 --- a/firmware/config/boards/subaru_eg33/config/gen_enum_to_string.sh +++ b/firmware/config/boards/subaru_eg33/config/gen_enum_to_string.sh @@ -7,7 +7,7 @@ echo This batch files reads rusefi_enums.h and produces auto_generated_enums.* f BOARD=subaru_eg33 -java -DSystemOut.name=gen_enum_to_string \ +java -DSystemOut.name=logs/gen_enum_to_string \ -jar ../java_tools/enum2string.jar \ -inputPath . \ -outputPath config/boards/${BOARD}/config/controllers/algo \ diff --git a/firmware/gen_config_board.sh b/firmware/gen_config_board.sh index 9e1f03372e..c0215d6be0 100755 --- a/firmware/gen_config_board.sh +++ b/firmware/gen_config_board.sh @@ -46,7 +46,7 @@ source gen_config_common.sh echo "Using COMMON_GEN_CONFIG [$COMMON_GEN_CONFIG]" # work in progress: migrating to rusefi_${BUNDLE_NAME}.txt -java -DSystemOut.name=gen_config_board \ +java -DSystemOut.name=logs/gen_config_board \ $COMMON_GEN_CONFIG \ -romraider integration \ -tool gen_config.sh \ diff --git a/firmware/gen_enum_to_string.sh b/firmware/gen_enum_to_string.sh index efd0c926e2..2828a4a013 100755 --- a/firmware/gen_enum_to_string.sh +++ b/firmware/gen_enum_to_string.sh @@ -4,14 +4,14 @@ echo "This batch files reads rusefi_enums.h and produces auto_generated_enums.* rm gen_enum_to_string.log -java -DSystemOut.name=gen_java_enum -cp ../java_tools/enum2string.jar com.rusefi.ToJavaEnum -enumInputFile controllers/algo/live_data_ids.h -outputPath ../java_console/io/src/main/java/com/rusefi/enums +java -DSystemOut.name=logs/gen_java_enum -cp ../java_tools/enum2string.jar com.rusefi.ToJavaEnum -enumInputFile controllers/algo/live_data_ids.h -outputPath ../java_console/io/src/main/java/com/rusefi/enums [ $? -eq 0 ] || { echo "ERROR generating live data ids"; exit 1; } -java -DSystemOut.name=gen_java_enum -cp ../java_tools/enum2string.jar com.rusefi.ToJavaEnum -enumInputFile controllers/sensors/sensor_type.h -outputPath ../java_console/io/src/main/java/com/rusefi/enums +java -DSystemOut.name=logs/gen_java_enum -cp ../java_tools/enum2string.jar com.rusefi.ToJavaEnum -enumInputFile controllers/sensors/sensor_type.h -outputPath ../java_console/io/src/main/java/com/rusefi/enums [ $? -eq 0 ] || { echo "ERROR generating sensors"; exit 1; } -java -DSystemOut.name=gen_enum_to_string \ +java -DSystemOut.name=logs/gen_enum_to_string \ -jar ../java_tools/enum2string.jar \ -outputPath controllers/algo \ -generatedFile codes \ @@ -19,7 +19,7 @@ java -DSystemOut.name=gen_enum_to_string \ [ $? -eq 0 ] || { echo "ERROR generating obd_error_codes"; exit 1; } -java -DSystemOut.name=gen_enum_to_string \ +java -DSystemOut.name=logs/gen_enum_to_string \ -jar ../java_tools/enum2string.jar \ -outputPath controllers/algo \ -generatedFile commonenum \ @@ -29,14 +29,14 @@ java -DSystemOut.name=gen_enum_to_string \ # TODO: rearrange enums so that we have WAY less duplicated generated code? at the moment too many enums are generated 4 times -java -DSystemOut.name=gen_enum_to_string \ +java -DSystemOut.name=logs/gen_enum_to_string \ -jar ../java_tools/enum2string.jar \ -outputPath controllers/algo \ -enumInputFile controllers/algo/rusefi_hw_enums.h \ [ $? -eq 0 ] || { echo "ERROR generating hw_enums"; exit 1; } -java -DSystemOut.name=gen_enum_to_string \ +java -DSystemOut.name=logs/gen_enum_to_string \ -jar ../java_tools/enum2string.jar \ -outputPath controllers/sensors \ -generatedFile sensor \ diff --git a/firmware/gen_live_documentation.sh b/firmware/gen_live_documentation.sh index b367fe1c1d..49b8a4ae67 100755 --- a/firmware/gen_live_documentation.sh +++ b/firmware/gen_live_documentation.sh @@ -23,7 +23,7 @@ bash gen_live_documentation_one_file.sh wall_fuel_state WallFuelState.java contr bash gen_live_documentation_one_file.sh idle_state IdleState.java controllers/actuators [ $? -eq 0 ] || { echo "ERROR generating"; exit 1; } -java -DSystemOut.name=gen_live_documentation \ +java -DSystemOut.name=logs/gen_live_documentation \ -cp ../java_tools/ConfigDefinition.jar \ com.rusefi.ldmp.UsagesReader integration/LiveData.yaml [ $? -eq 0 ] || { echo "ERROR generating"; exit 1; } diff --git a/firmware/gen_live_documentation_one_file.sh b/firmware/gen_live_documentation_one_file.sh index 911053be0e..0d27e35385 100644 --- a/firmware/gen_live_documentation_one_file.sh +++ b/firmware/gen_live_documentation_one_file.sh @@ -14,7 +14,7 @@ meta_file_name=${meta_name}.txt header_file="${meta_name}_generated.h" -java -DSystemOut.name=gen_live_documentation \ +java -DSystemOut.name=logs/gen_live_documentation \ -jar ../java_tools/ConfigDefinition.jar \ -definition $folder/$meta_file_name \ -cache_zip_file tunerstudio/generated/cache.zip \ diff --git a/java_console/logging/src/main/java/com/rusefi/util/SystemOut.java b/java_console/logging/src/main/java/com/rusefi/util/SystemOut.java index c1a264f570..fdd80e70ac 100644 --- a/java_console/logging/src/main/java/com/rusefi/util/SystemOut.java +++ b/java_console/logging/src/main/java/com/rusefi/util/SystemOut.java @@ -1,5 +1,6 @@ package com.rusefi.util; +import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; @@ -27,6 +28,9 @@ public class SystemOut { return; String fileName = System.getProperty("SystemOut.name", "rusefi_tool") + LOG; System.out.println("Opening " + fileName); + File parentFile = new File(fileName).getParentFile(); + if (parentFile != null) + parentFile.mkdirs(); logFile = new PrintWriter(new FileWriter(fileName, true)); Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { @Override diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index b65bc49bb5cac490da268f8eb00b321198864e8e..47e758add2b87728b6ef77a779276759a1bbb064 100644 GIT binary patch delta 41607 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 E0sG4kBme*a delta 40962 zcmeEvby!s07p`-L9BOEop}T8l1Zhw}P)QM`Z85=aM8yWNSSo@bHg=)d-D0AC7ACgX z0m@zb>|q>!f86``eICE(;hX)wYwfky?l}7#OFq?c9yiu;)MLAF6?pC1skCdSS+Pjn zk2C7CV zRGLqiH-*wcxbM(m<^=lDY~$MayuOb){TX86d$n6@CAzF*uWo8 z9TO6mZ6eXBHj(HiztR+~N=lfP9-py_Y1eL?B1GpZ+va+@^&Q%K)Tpi9hs5ZH=mjMF znl?t;Wlr}U7J81)cb5Oy;(1L;J#yKZ_C`mStKZ9W>oxZLdzV2^R(o+gSN`BO$DQ%J zkvydQiSof$?@Rp#*4~};;>zTfkI#kE68&FyG#_xwb;Pk_sl5F3OTsyQj~`Pv&{)|k z>UdP|6_yjuJxCpY$|E=a;nUgoM^3JC;-0-X#ndNWAuROVEZr9>zPECxgx!$GY`XON#PVP9-zvHXbn+h$pH;*(5Kd67fWAfUKgBNXx zk9+X(w&~aByMK}_yU~KZw95i{=8k!CdH3m%;7DT z&^312P}U-?Z+bjIcpQEdN8>Q=UKk+_%G>?*6&@peRrn`JAV7{rQd=J z`xehzZ@>L*a&61(KixYiRS(m?{-@V^)9ydNr+pmQW!w>i$g_Lf@71_zw0`)4eMf6+ zhs+s%G45@6u3vS2q_2&-Z*-p-GY0qPOuX(@rT$ylLuHn;-n*+i7q4x|?)^t$OHt%1 ziyl3DUOE+X?Q>k^jnOeW0;7{ff#o{9nA^-xs`zSO@?qcCvwID0 zTvG`144wAHXt>VEsLx%kH;fYP&#zj!WKqzs@4Bsni%L7vijVttaDD=rmU@A?2kjS} zb*Kz3KH7JZyK&8roDT;Y zRt;&o_uV~%;~)Cyq~7p56>lo@O9G2?E{4^f9%eYsC^^FFo&H&MwU2o|I*Tq;cB@R> z_dVL#`m1i}@+pa5>Wpe~7Mq9HxIEi7FL!}U*Ds+fszVKDK3uc)bYS8NuUaEB?)VGB4{AbL&F9 z*RPjf2A^n{xzoYDS!F|u>g5Edqfz(mgQ^C;Jd`ooEX*x&H0G`*o$K^vN;@83pH(*`GK@37PeSnYn|tbN zZ0x^e?kag-_AcyATF}ewaY4c6pKqGiFZ`4GWC)))cb^-oup*dbI#K#rt^IRJ<6Z1%rn~MyG`iPvw!5-U3s~~>ykY)pL8^> zQX1K_?~R3pnWo;OCl4)ODEZ|7=-J~QCaW7Kr<~oO^uAs+>!9iE{+V1wZrB{3DBt!P z>QA?6ZaSX2XV~K_;99F&HtUXlRu@U7>{n+ z=xzB_^E~R|?fkegNjhg@_tkg5p1bYC+{Im;A8-1ys=IUXo5)F{3icUmJaF08CBLfT zMnbXG%o~^2SDkR;d7riKcir~g=ItXd*yVDB)fvTAo244PZb{ka zF1C;7^_dgqYxhX!2tRY?)@;SN#Kktg`@~u}_I2FZxN}z7mZ!tlS5LO`OKUjg zQq&aXqHH*5d6enfXFYd&A6fi-^q}LKJ@cnG9$K_%lcR?7riLlAS{6L|m_2Xy{Lu+l zK0cVNU^m-M2kH^~a&3=cI2Pw4S%mFH*YjWZ-V^ zP?uGMdtQ08_kOS2d(9*Zj^EMOX!uVwTW7tE_Z07QGsC~V+|kWvaO>5&vMPo;=ewy3+?KE!fti}b;CIKmN%y_UO(FsSd|hOwf^_YlPfP<=I?x1FWES+-Acdp&->fX_FkD=vuxP9 z(#=`5({JrRn+=06U!Qxkw`-MtW^IAT(ugvhrCHjuOTr(yUEoc)@*uva{`&U zc-$N^w0iFAtm3R|kIZl6{mOYRPX02t`@ufz9o1I)+bCBZa?aX6a@vg9pZ_x$6jSAS zpnLYv{*mu%xR>i!nRm#kH5?n#@67PU@6vO-l&#C{n3NNtVKAh-L-)*0C0+kKZ@Jg= zc203RXGVR7p1?aoaCQ)^U$Iij_w2ZI9?^YW_-3aS_E#wImYxmVsuPJNQR{CVE=)VS<^o0Mi0)~v6TEdTjYP?I%IoHKMyP|b|8 zS6Alde!jNBr)=SuaWBd&b{0H*l(S}5V7%`NpS=Y)eqS5*#Xi0KR(mC@7|;C$h9h<~ zc73vLn0mnRyV*SJd#R|m z%~yw~Hy2)CzGl$DjUCfY*@l{0lq9_j)3;oulYa6|r|07I9*s&5ZN|FY-c%aC{>r0e z#|(doHYWshY%moICF%`l?Z2pPuqK>tj=@_2tpJmw5_XXKDYrl>JM&y7w&Q@ZBoj!(9>voG3dA+dHUq z$la!>7N)(3NlY>G={EUfW2ndCRhcfYn!XNqn14HMWc9!ks};2dPj1v|TxfM=-`dRS z!*_}N9$lL3Cpvg^d+r~m(I6$z-~ZdSQ%iceJk8Q@4lL_^>*Oe{A!f4M_3yt<|D*2R_SmQ?i~ z8XnT)+2}RXPiz*yOnX)w9+5xn=-tO9yF%4|1SItHJe*XxF|goH;QS-usmG2KCM7M%ai{WpZynEhm8;lDB zE-0+_S~skAfL_6PAGPntn1=^;$D5_>)_qv9M_p@N&6Gpo%T_0spZO4YvSh=lI&Pri z7R5Ig>c-8vxHDzfmcru_|9+14oQ-|U_8zOu`s5bjx4JoRh4WIu^Ux6+?~lA0*XO|T zkxMG?jobfBBT2O&=L=)d3w~O=^)8GlJj$ycoGUk%k?MOnq_@ImoXgZy+qE-?+IxB? zxpWa;(0y2fZj#>A;+aEtxiG5kJYM|XSq`0&hwio5yT;0vuQ%`Xkvq1%GJEeX8Q$J% z%8h+3<+&$feorg4?7AZB=w8w9xYEFJyCXZ#5&bSIIouG~u&Tkop{%L)=+PEVCKKem zf972kv&`t@XO}1O!<_}DI)A|F#hST&Bb$S|U!4)*Ros7z!=SVFy|>Kz*t4Q( zgIC>&@j7P)dIiGA{OReF9qVKCCo6V4Q?p>fbdL58^IpAghMmz+EV;uw$?s$~@5|>C zLsHHZDvY_ZYxKY~H+hPOEi8+oYNO_?-?w*Q^7WfrEX&X`Fz{p z0dZha@-6qpl#|brVvL91Id9wN!P&ycuQdZg6K3__e`A5byw@`Rs-3$#ja#eUCBx-K z-I#%4DTaTpEiJuvDeu}4$X8f=5PnNl!eW)LI=>FCTm#>Yy)vPf`>B_6G!vda8oN9Tm zY1@Yxxo#)>)i200R9Mvi;LCnrMjA#Z<{Rs#J8kRJJv=&JF(o|x^ugt^A35QPHrZjJ z8I|ed=FM7h%Tzz(iq9hR98{5EU*U2;7tuhAY)gd*YNP3Hjj)L#iJR&ee2G@c31d5Wx%zkB5J1_@|D48u+J)e_Hs* zuYMe?eWwdKYx#HfgN5+#?C0Ov&%d*ue`i1c&VK%#{ro%o`FHm7@9gK_+0VbTpMPgR z|IU8?o&Eef`}ueF^Z)JH51#X=UmT7H+gcTHHqO|V(Wpn^SQt%y zGlGSQ_*=a%SZHlV2#jF6FGJX#jfKwHLaen|rMiEKFwdRH(M?t7UFjcui> z(?d*p>JWtaw1py(ShM;~f=Oj2p;(VU>@iWTKC;K;2+1v52!Ms41qByORH~~^njDBA zJjr}DW`4E-L2P1IL&d7qA}iB+F;dm~Nv4*%MCLQt)Q%9DgH4yZ5CWqbf(Dpc6V?k% z%^AWbtT63Fh!rbLFDQ^e|1wj&!GscIe5)U4p8G3HKxT6 zNUZ%}HgE+ASbCbrnGh8W*g*YpbH(b?Zsz&th|I>oVr(D@tmA577nvlfoVr9Rb~%sv8W!_Vrgkg;$hQBJWB!%Pp#&85pApvgX*~k)>%#j z?Wl7xuhtE*eot}^*v1TI8xOL^KO6kB#Xq}h<3aXmibP7%nT_dGFC6AD(VH+>n+8xe z+DRLV93_ggz1KNZd#`hhscn^2qb!PTVx%zk6*&#ON<;({7ddHH7iBt|u|~Q< zss}bXE6Uu2SD6mla4b=xQN701<$@cDi-lwYnyXwisv*_Ia3WH(F%Q){>RexOi5$zv zyjb5&wff|Lu8pLg*i6Aib2noI)i2E5^skUezu&o4|96!ycE|mc&+E z%q5SQ9wbJ&m1o)@Vy9)ECtFDN^F7(3OPKHJK@{@mdyXk4fo4lDd$z7IfV~GR60jmQ zs|R>_)n(wJEd(z1>VS9oswXV=@(zRgogxL8o-67{Lne2;(r9SP9j{CpdVI$#n})3O zL}O^^%3ZJVG!*rp*Kis-^qD3b3$Z&z77(o}(xdTZH*R2rs;Dn#BvkAarEz9~Cr^~bbYB43yG7Qp zl_v^dk`@u*0D5X7Pex-21;I;{mBDeUSRG<_i_ADbph8WQ%#Hsj zaFIdR6qCUsFS&LFt9N7R#352+fWUfj4n%8<54*##bL7O6v{2HN}# zTAHFH?#lzp5K`i03J$4y`jE~O@u5mnBw!XFf}(1X5j@fqbznB0B)|k}Pb%wx@d|XS z{=7&LdTEJ_IV&NgTGWl>4ac=a35>~YxVB%U5B|56)xfA1S_|ik1e_hvn=gvtWWY|o zD3 ziGmHJj=`jIPhpgeV+i94(PLFiVVW66@ixVVd}3@`-Y$FO`CO@aZ^o5EA)iJci7TKlvvS=t{|B(tGEg@;!VoFiJDD&nQ)&`qW zsvVlFYX@XR~0};E!w(iAV)7apfB}N z#Q_a|F_n{bbr3}{*4A>&F$Ymc=C(6sEF3WnRS^NUaO9T0px7B}!^nOz-OP<#_huq>Pk z{3BG&S@rWSs6H-|u=e2gR^OOq?YgPTw~m8diM$_kBbw?xbj5+vIDrC-I<#w>NWmdD zQ8;G+T&oieX6E;zoO80O1#8tgwT;zdDMW4u8L3#vjkhsJFVa|M*(w7w$h?DuL2s&Z ziHpot!i4oBj4k|9GN7(b_QVXR45aK~PjoCQivo8qoXCC;k%IB6`mkdtw&08zbYxP1 zBVHJF(KxEm;)NAcJf4D>iK^-lJVBKQ7hhxbtPr8%&IvM^5ProVy>F<2{3t613$ZAJ zvjnDzMFW_qIp_$dZBK3LC} zy+vM}lwu!IPiCnOp{&6}m!}FZ|9J7?qJSr#t4!GGBT8Y$m{7fzdXa=V#*-1o;=U%F6c$9rrl7SEAsila<2vucTW1PME!|e`HZqAo#6F%fa9P-wx{E4$1;>H}`J`#qOZkhoY}PiA;o?IOBFBMhw?8sJSUp=6}OR+;gq%*VXP0U{@`Bpzppr) zP0FRT+BZ>q=2IR852hQd(`O{v-^dPhCZ#9mBR#$w*_eLAhi%8dVf>WYR2DwR*a+Sz ziuoY;j&$l=N_Y8==W40*DTr8rItRaF&i)iorkRKv7E;jt2cEraRV2aAVlN>xzml+q zQ1JtIuBWBo%@0u!lf08k5NJVU0-C31|0or ztO13D?%57L{wC*T9Dz;oZzPNqDZy6~@FATrk2Pc}JlOXeE52EaFvA!_UGi%QntB2u zW=VZny;u>p{t+27-SwfOMdS%T|6o}x#4>3S`NC==d^kV;x0kdw@>}q9!U@V-L}Qpg zCPXD@Sr4&@nQBhLfy>T|CCnHbHVlCr6cjj8u#W68^%Vz-O_=&LQVMv?IaZ(oOBGSiI9YmEiKslU8F;XBn61N+eT~p9XYMZcLk(hvxAocod2(lCg(pn&8Gjb64ftZ zKVXgSxz|SZ?O#8e%+^*%3ceUV1pJGo#z8N=DiknhxgCq zm>|BmBeVOJj3MXu(!u8#ADi#IH>{{wQK$^R_-OBh9I@vujsio^x4K&QzKyGz?`2Vo zKVU7V8emDD(8gNM`XDdiLH|YpznDl@d}(9h+Gm*_y#I#%=i(QECbe_wTN};huWdAq z(3-UTp6FnL!k>S|*}6Cknd@Q~9?;x|l`v~tWW=&!p)Mrbq7`;-c%ds6;1MH7Pn^o= zD}c6@SRaeT>~Au4%0l^;rK#Miqg<>a)RHTt*Q#w4tyE=-pvMzx)7<%LwNV`>AHW3SUsU0G2_JGup{+U8IV;1X9FQAXr3auJC+3H6<$J)DtH=- zEuGuW@JR`++a&VqCIkF-??S>zgcQyq^5Y3d48^^e>n3bM>-nxfU~jK>F-qOB%&hr&Y4j>ZQd2e*c$uEOUMN@&9-jC2cos+f3*1E zC%_cn{ts;l6OVdH+d6A~QlKnd4VSit+m?rYoANmDH<}(q3aPs;3Fye5zY@X!wSc|a z7>tB#0 zT;u4LJcjpN;U>k;*@3>AQjDoe;P&Pu2TuDfMa?8+z+4L7EL8&$R zv~rb9tOWB*u_w(R-8z&Q+2Bx;QZALxkn*CuS>f1?~HQATf*Q}|&cZqGFB zkYnEN!~p__8YiZ7w;Wx#N6446#H(pDB!nK2Q~hC!bNlh5a!j0^Sf6B>9mB0IPzkw3 z3CqZucDJ3_m`VOiYe1tN7RUIDGDQu@z9ghG7CQj;wa1J^UY5yqV7)yqQGBmZCes0H zxO1&g6U-ejBR#Ll=pGE`whUN9qXW*){`X{z3G{TtIcdNHIp(M%wg=0na*VqZj&Wfx zD1+H>As0RHDXkN>y|~vh+8k2e;5AiKXLKR+y&OHo8B-ncRmK=Xy|Xxs$@$TiQG;|B zu@AGn>3`{37o0BEaNw~k4qIi-I2UebOr%S#9Ha zWo{TbR+oaodad!i+%eupLqhw2x0Bcc))VH6fG{p_RcIol%P(UOl7Km--&&ZM!c-5; zV6hElmfM<0S1I3#;(2>Q+d&6Utk9qS1en6x023{6vBmDnt|^uWn#fO9R|ANa2|V%? zTge*Ds9>=45{ENY?5_!whM17M3{nf5y)Y@~PDI57Ov6lc;N5#K^)N(XGFXQG=KPCQ7h?&?m+a+7n($a3rZ8M}RLhj>mEz(H_MoCsO8CdmQ+tPNAT1 zDi+ZFPabv@*rAb=| z@W89rV!m`9XE&G^cEj-iu^HK8@ZqyR+EUm<7`x)VCMpmRfLV9l#}cqG0LydeF#-ax z!r6Vw{u87T=(E?O!7mWCKgu&R12L~t&&hPO;M8@zTF8zKgDLmks4r2F#B zmtd^x%W85ui6Pj*H)_flJvd+}(WCAEVF>!t$fq)XsJIie$6Tgp-F5}c4YD)^j)SQX zZinI`Wn3#V?DL%;;=9&BcpcN7b_Q*BwH72NJ9ZqIeHXORa4cS17{ z99U!l1)Xq5w8{w|*o*se(_EzHVq8siU`lxF#4{=k&FQ⋙inVK<;f%DVi!aRROJV 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 KnRjuB(EkI~=JKTg diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/test/BitParsingTest.java b/java_tools/configuration_definition/src/main/java/com/rusefi/test/BitParsingTest.java index b4881f1c39..66c01b72c5 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/test/BitParsingTest.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/test/BitParsingTest.java @@ -8,6 +8,7 @@ import org.junit.Test; import java.io.*; import java.util.Arrays; +import java.util.Collections; import static org.junit.Assert.assertTrue; @@ -30,7 +31,7 @@ public class BitParsingTest { writeContent(fieldsSection, new TsFileContent("", ""), createOutput(sw)); } }; - state.readBufferedReader(reader, Arrays.asList(javaFieldsConsumer)); + state.readBufferedReader(reader, Collections.singletonList(javaFieldsConsumer)); System.out.printf("start[" + sw + "]end");