full test also want to end within 50ms

full test also want to end within 50ms

50eeba52e7889f4ed616d9e097b1f76b?s=128

Tatasuro Hisamori

September 21, 2013
Tweet

Transcript

  1. ϑϧςετ΋ NTͰऴΘΒ͍ͤͨ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 13೥9݄22೔೔༵೔

  2. :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz ςετ؀ڥͱ$* 13೥9݄22೔೔༵೔

  3. U6UJMT full  test  also  want  to  end  within  50ms •

    ςετΛḿΒͤΔϢʔςΟϦςΟ • ઀ଓઌDBΛςετ༻ʹஔ͖׵͑Δ • ςετຖʹىಈ͢Δmemcached౳ͷport൪߸Λஔ͖׵͑ Δ • ͳͲɺPerlҎ֎ͷϛυϧ΢ΣΞ࿈ܞΛαϙʔτ͢Δ 13೥9݄22೔೔༵೔
  4. UVUJMT.BLF)FMQFS full  test  also  want  to  end  within  50ms •

    ϔϧύϞδϡʔϧ • खݩͰmake  testΛ૸ΒͤΔ࣌ʹTest::Prettyʹ੾Γସ͑ͨ ͍ͳͲͷཁٻΛٵऩ͢Δ • runtests  ʹςετҰཡΛ౉͢લʹγϟοϑϧ͢Δ • ͳͲͷॲཧΛߦ͏ 13೥9݄22೔೔༵೔
  5. UVUJMT.BLF)FMQFS full  test  also  want  to  end  within  50ms •

    ςετ࣮ߦॱংͷγϟοϑϧ • ͓͢͢Ί • ஌Βͳ͍ؒʹॱংʹґଘ͢ΔςετΛॻ͍ͯ͠·ͬͯ΋ ؾ͚ͮΔ • DBͷcleanup࿙Ε͕ൃੜ͢Δͷʹؾ͔ͮͳ͍έʔε • ಉ͡ϑΝΠϧ໊Λҧ͏ςετ͔Βࢀর͢Δέʔε 13೥9݄22೔೔༵೔
  6. :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 6LJHVNPͱͷ͖͍ͭ͋ 13೥9݄22೔೔༵೔

  7. • ಛʹखೖΕ͸ͤͣͦͷ··ར༻ • ͦͷඞཁ΋ͳ͍ͷͰ 6LJHVNP4FSWFS full  test  also  want  to

     end  within  50ms 13೥9݄22೔೔༵೔
  8. • ར༻͍ͯ͠ͳ͍ • ಠࣗͷ࣮૷Λͯ͠·͢ 6LJHVNP$MJFOU full  test  also  want  to

     end  within  50ms 13೥9݄22೔೔༵೔
  9. • CIΛ։࢝͢ΔͨΊͷ࿮૊Έ • ςετະ࣮ߦͷϒϥϯνΛ୳࣮ͯ͠ߦ • SQLiteʹ࣮ߦͨ͠ϒϥϯν໊/ϦϏδϣϯΛه࿥ • ςετ݁ՌΛUkigumo::ServerҎ֎ʹpost͢Δ • ࠓͷͱ͜Ζϝʔϧ͘Β͍

    '0VU5FTUFS full  test  also  want  to  end  within  50ms 13೥9݄22೔೔༵೔
  10. :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz ૿͑ͨςετͷ࣮ߦߴ଎Խ 13೥9݄22೔೔༵೔

  11. • ͔͔࣌ؒΓ͗͢ • ϒϥϯν͕͍ͭ͘΋͋Δͱ݁Ռ͕Θ͔Δ·Ͱ଴ͨ͞ΕΔ • ϝϯόʔ  /  ։ൃҊ͕݅૿͑Ε͹૿͑Δ΄Ͳ଴ͨ͞ΕΔ • ଴ͨ͞Εͨ຤ʹ

     fail  ͱ͔ͯͨ͠Β΍Δؾ͕ͳ͘ͳΔ • ࣄނϦεΫ͕ߴ·Δ • ʮ஗͍͔ΒखݩͰमਖ਼ͨ͠෼͚ͩςετͯ͠ϦϦʔεʯ • ͦͯ͠୭΋ϑϧςετΛ͠ͳ͘ͳͬͯ… ໰୊఺ full  test  also  want  to  end  within  50ms 13೥9݄22೔೔༵೔
  12. εέʔϧ͢Δ ΍ΓํʹมΘΔඞཁ͕͋Δ full  test  also  want  to  end  within  50ms

    13೥9݄22೔೔༵೔
  13. ߴ଎Խʹ͋ͨͬͯ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 13೥9݄22೔೔༵೔

  14. • طଘͷςετΛॻ͖׵͑ͳ͍ • ॻ͔Εͨςετ͕ͦͷ··ಈ͘͜ͱ • طଘͷCIαʔόͱ਌࿨ੑ͕ߴ͍ • Ukigumo::Server  ͸ܧଓͯ͠࢖͍͍ͨ •

    εέʔϧ͢Δ͜ͱ • ςετ਺͕10ഒʹͳͬͯ΋ػೳ͢Δ࢓૊ΈͰ͋Δ͜ͱ ߴ଎Խͷલఏ full  test  also  want  to  end  within  50ms 13೥9݄22೔೔༵೔
  15. • ෼ࢄ࣮ߦͤ͞Δ • ෳ਺ͷαʔόͰ෼ࢄ࣮ߦ͠ɺϊʔυ௥ՃͰεέʔϧ͢Δ Α͏ʹ͍ͨ͠ • αʔόͷ௥Ճ/ϝϯς͕༰қ • ؆୯ͳconfigͰ؅ཧͯ͠ΏΔ;Θʹ௥Ճ/ϝϯς͍ͨ͠ •

    ࠶࣮ߦ΋؆୯ʹग़དྷΔΑ͏ʹ͍ͨ͠ • ෳ਺ͷαʔόʹ౤͛ΔͷͰɺ໰୊͕͋ͬͨ࣌ʹ͸࠶࣮ߦ Λ͙͢Ͱ͖ΔΑ͏ʹ͍ͨ͠ ࣮૷ํ਑ full  test  also  want  to  end  within  50ms 13೥9݄22೔೔༵೔
  16. ෼ࢄ࣮ߦͷ࿮૊Έ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 13೥9݄22೔೔༵೔

  17. Ϛελϊʔυ Ϋϥελϊʔυ 'test1.t' 'test2.t' 'test3.t' 'test4.t' 'test5.t' 'test6.t' ࣮ߦର৅ςετ 'test1.t',

    'test6.t' 'test2.t', 'test4.t' 'test3.t', 'test5.t' ෼ࢄ࣮ߦͷ࿮૊Έ full  test  also  want  to  end  within  50ms 13೥9݄22೔೔༵೔
  18. • ςετͷϐοΫΞοϓ/γϟοϑϧ/ׂ౰ • File::Find,  List::MoreUtils  Ͱऔಘͯ͠Ϋϥελʹׂ౰ • Ϋϥελϊʔυ΁ͷ࣮ߦ໋ྩ  /݁Ռडऔ •

    Parallel::ForkManager,  Net::OpenSSH  Ͱฒྻ࣮ߦ • ݁Ռͷύʔεͱ  Ukigumo  ΁ͷ  post • fail਺ͷΧ΢ϯτ,  LWP  Ͱ  post • ࣮ߦ • ϊʔυଆͰ  TAP::Harness::runtests  ʹςετΛ౉࣮ͯ͠ߦ ࣮૷ full  test  also  want  to  end  within  50ms 13೥9݄22೔೔༵೔
  19. ࠶࣮ߦ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 13೥9݄22೔೔༵೔

  20. • ϚελϊʔυͰ࠶࣮ߦWebAppΛىಈ • ࣮ࢪঢ়گΛอଘ͍ͯ͠ΔSQLite͔Β౰֘ϒϥϯν৘ใΛ ফ͚ͩ͢ • Chrome  ֦ுͰ  Ukigumo  ʹϘλϯ௥Ճ

    • Ukigumo  ͦͷ΋ͷʹखΛೖΕͨ͘ͳ͍ ࣮૷ full  test  also  want  to  end  within  50ms 13೥9݄22೔೔༵೔
  21. ݁Ռ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 13೥9݄22೔೔༵೔

  22. ߴ଎Խͷ݁Ռ full  test  also  want  to  end  within  50ms OPEF

    TFDT ˣ OPEF TFD 13೥9݄22೔೔༵೔
  23. • ૉ௚ʹαʔόΛ଍ͤ͹εέʔϧ͢Δ • αʔόΛηοτΞοϓͯ͠ɺ୯ಠͰmake  test͕௨Ε͹Ϋ ϥελʹ౤ೖՄೳ  -­‐>  PuppetͰOK • ࠶࣮ߦϘλϯ͕ؾܰʹԡͤΔ

    • ͍͍ͩͨ180ඵͰ݁Ռ͕ฦͬͯ͘ΔͷͰɺԿΒ͔ͷࣦഊ ͕͋ͬͯ΋͙͢࠶࣮ߦͰ͖Δ • खݩͰ΍ΔΑΓpushͨ͠΄͏͕଎͍ • ଞͷਓͷ։ൃΞΫςΟϏςΟ͕ݟ͑΍͘͢ͳΔ ݁Ռ full  test  also  want  to  end  within  50ms 13೥9݄22೔೔༵೔
  24. • “खݩͰ΍ΔΑΓpushͨ͠΄͏͕଎͍” • ʮͱΓ͋͑ͣpush͢ΔʯΈ͍ͨͳจԽʹ࢓޲͚Δ • νʔϜϝϯόʔʹର͢ΔποίϛϏϦςΟ্͕͕Δ • ݁Ռɺ඼࣭଎౓ͷ޲্͕ਤΕΔ خ͍͠ޡࢉ full

     test  also  want  to  end  within  50ms 13೥9݄22೔೔༵೔
  25. خ͍͠ޡࢉ full  test  also  want  to  end  within  50ms ߴ଎ͳςετ͸

    ։ൃจԽΛม͑Δ 13೥9݄22೔೔༵೔
  26. ͓ΘΓʹ΋͏ͻͱͭ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 13೥9݄22೔೔༵೔

  27. ςετ͸ ͲΜͲΜॻ͜͏ ͓ΘΓʹ 13೥9݄22೔೔༵೔

  28. ͓ΘΓʹ 13೥9݄22೔೔༵೔

  29. ΋͏QVTIຖʹ ϑϧςετ͠Α͏ ͓ΘΓʹ 13೥9݄22೔೔༵೔

  30. ͓ΘΓʹ full  test  also  want  to  end  within  50ms ߴ଎ͳςετ͸

    ։ൃจԽΛม͑·͢ 13೥9݄22೔೔༵೔