From 1891ceb7b5ab7fc5224be0e9d701c94bc6e67cfb Mon Sep 17 00:00:00 2001 From: Timothy Stack Date: Fri, 10 Jun 2022 21:17:02 -0700 Subject: [PATCH] [perf] fix some performance issues with log vtabs Fixes #995 --- src/base/attr_line.hh | 9 +- src/base/lnav.console.cc | 36 +++-- src/bookmarks.hh | 4 +- src/breadcrumb.hh | 5 + src/breadcrumb_curses.cc | 18 +-- src/document.sections.cc | 1 - src/file_collection.cc | 7 + src/file_collection.hh | 2 + src/formats/vmw_log.json | 44 +++++- src/lnav.cc | 12 +- src/lnav_commands.cc | 4 +- src/log_format.cc | 23 +-- src/log_format.hh | 3 +- src/log_format_ext.hh | 3 +- src/log_format_fwd.hh | 13 ++ src/log_format_impls.cc | 12 +- src/log_vtab_impl.cc | 142 ++++++++++++++---- src/log_vtab_impl.hh | 2 + src/logfile.cc | 33 +++- src/logfile.hh | 7 +- src/logfile_sub_source.cc | 61 +++++--- src/plain_text_source.cc | 8 +- src/pretty_printer.hh | 4 + src/readline_possibilities.cc | 3 + src/sql_util.cc | 6 +- src/views_vtab.cc | 8 +- test/drive_data_scanner.cc | 3 +- ...1e4b1523dfca71927b1fe721c74490c51361d1.out | 2 +- ...0ab532d8d845f8201af65bf5f6fc994e21a8aa.out | 2 +- ...9a44ac6a8f1be2736c8e9c47aeed187e0581ee.out | 2 +- ...5126309709179759926289caf729703ef6e1c6.out | 2 +- ...53f5b16c7c5aa695ed2e6427d822a1b940fcf4.out | 2 +- ...fb06d63469f0e6dae94af026f77d5b255386c2.out | 2 +- ...577861cb0921a7e7f3d1af6485938f4930ba7b.out | 2 +- ...123104cdd2087ac40731a0aa533ba6a87ea744.out | 2 +- ...f0fe712c9b0012e42282c5f77b0b83cad37ddf.out | 2 +- ...5b1dfdfe785b945df4220aad6671ae1d364f55.out | 2 +- ...29080ed14d01c6a887900186f37750df0d5ff0.out | 2 +- ...fa2a95b703d4ce12e82882eca1938264822690.out | 2 +- ...20a298e2c059d7f6045cbc0c07ca3db3917695.out | 2 +- ...3054e29aaca4c2662c45c2a1f2f63f3510d8dd.out | 4 +- ...06183ed231669965965f5042fbbb507fa7deab.out | 2 +- ...fd08c1639701476d7b9348c36afd46fdbe6f2a.out | 2 +- ...4a41e152675575f4b07c19b2cf0e3a028429a2.out | 2 +- ...e1925e9d7aadcdaa54a35a29711d7ecaad8d27.out | 2 +- ...ea99c84fb1d4570e8bcd45c423b4a28fe41e81.out | 2 +- ...98805f897346b4bb0f14e53c06b4fa28e309e3.out | 2 +- ...ed177028f226e86b1d164eb1a4e18eaf036c9d.out | 2 +- ...45861db011dfa2d21a44788047de345ee291e8.out | 2 +- ...beaabe41d72cf4c6810e79c623da759ac1c71b.out | 2 +- ...8dac54dc80d91a5da2322890c6c26dfa0d8462.out | 2 +- ...123427c31c022433d66d05ee5d5e1c8ab415e4.out | 2 +- ...55a8b48c0f602f0270500b0117b76e11db546e.out | 4 +- ...f8bf53ec2736432eb048d94a391175eb4dc5bf.out | 2 +- ...60341827636715c14c562863da9733cbde7e68.out | 2 +- ...6d77ad95b9f120825417a6a8220c13df9541fc.out | 2 +- ...41fbbcd71699314af232156d4155fbdf849131.out | 2 +- ...11aebcb2defb7471aa620c45a86cad449ad505.out | 2 +- ...9f005b0708d629bc95f0c48a5e390f440c1fef.out | 12 +- ...24d1a96d74d4418dd44d7416270f9bb64b2564.out | 20 +-- ...a71e94dc34661a70bb9015b67ba00e93e9cfb5.out | 2 +- ...a037c7d9d70ac4ca97158271ea242787313377.out | 4 +- ...9e52d167582648b73c5d025cc0e814c642b3c8.out | 2 +- ...6b3cdd46b387e72d6faa4cce648b8b11ae870b.out | 6 +- ...0050b3469f37c5b0864e1dc7eb354e91d6ec81.out | 98 ++++++------ ...ff39a3d0ac0ca0c95aaca14d043450cec1cedd.out | 2 +- ...39b356748c67ccf8a6027a1af88da532f8252a.out | 2 +- ...1b1a8a176b25001a89e35b295a1117ab76969b.out | 2 +- ...489c1f0e001adc732b7e2ab31bb30960fda078.out | 2 +- ...63f96398650f130941bbbf4cf63c1244fdbee5.out | 2 +- ...fb22932af2467a2651797a8a8d8cddcd09431d.out | 2 +- ...af0b41066ca3be0bbce89c83c011f4ecfa516e.out | 2 +- ...09cb565f44a114d8c9a519e571918e30262eaf.out | 2 +- ...f4a91aa55262255816dff7d605f1f0a5d6fe92.out | 2 +- 74 files changed, 471 insertions(+), 230 deletions(-) diff --git a/src/base/attr_line.hh b/src/base/attr_line.hh index fe211825..6cb52b21 100644 --- a/src/base/attr_line.hh +++ b/src/base/attr_line.hh @@ -371,19 +371,14 @@ struct text_wrap_settings { */ class attr_line_t { public: - attr_line_t() - { - this->al_attrs.reserve(RESERVE_SIZE); - } + attr_line_t() = default; attr_line_t(std::string str) : al_string(std::move(str)) { - this->al_attrs.reserve(RESERVE_SIZE); } attr_line_t(const char* str) : al_string(str) { - this->al_attrs.reserve(RESERVE_SIZE); } static inline attr_line_t from_ansi_str(const char* str) @@ -735,8 +730,6 @@ public: void apply_hide(); - const static size_t RESERVE_SIZE = 128; - std::string al_string; string_attrs_t al_attrs; }; diff --git a/src/base/lnav.console.cc b/src/base/lnav.console.cc index 3a10bc08..82b957dd 100644 --- a/src/base/lnav.console.cc +++ b/src/base/lnav.console.cc @@ -208,7 +208,7 @@ user_message::to_attr_line(std::set flags) const return retval; } -fmt::terminal_color +static nonstd::optional curses_color_to_terminal_color(int curses_color) { switch (curses_color) { @@ -228,9 +228,9 @@ curses_color_to_terminal_color(int curses_color) return fmt::terminal_color::green; case COLOR_RED: return fmt::terminal_color::red; + default: + return nonstd::nullopt; } - - ensure(false); } void @@ -274,19 +274,33 @@ println(FILE* file, const attr_line_t& al) if (attr.sa_type == &VC_BACKGROUND) { auto saw = string_attr_wrapper(&attr); - auto color = saw.get(); + auto color_opt = curses_color_to_terminal_color(saw.get()); - if (color >= 0) { - line_style - |= fmt::bg(curses_color_to_terminal_color(color)); + if (color_opt) { + line_style |= fmt::bg(color_opt.value()); } } else if (attr.sa_type == &VC_FOREGROUND) { auto saw = string_attr_wrapper(&attr); - auto color = saw.get(); + auto color_opt = curses_color_to_terminal_color(saw.get()); - if (color >= 0) { - fg_style - = fmt::fg(curses_color_to_terminal_color(color)); + if (color_opt) { + fg_style = fmt::fg(color_opt.value()); + } + } else if (attr.sa_type == &SA_LEVEL) { + auto level = static_cast( + attr.sa_value.get()); + + switch (level) { + case LEVEL_FATAL: + case LEVEL_CRITICAL: + case LEVEL_ERROR: + line_style |= fmt::fg(fmt::terminal_color::red); + break; + case LEVEL_WARNING: + line_style |= fmt::fg(fmt::terminal_color::yellow); + break; + default: + break; } } else if (attr.sa_type == &VC_ROLE) { auto saw = string_attr_wrapper(&attr); diff --git a/src/bookmarks.hh b/src/bookmarks.hh index 8cb8365e..f11356d1 100644 --- a/src/bookmarks.hh +++ b/src/bookmarks.hh @@ -99,7 +99,7 @@ public: } return retval; - }; + } std::pair equal_range(LineType start, LineType stop) { @@ -112,7 +112,7 @@ public: auto up = std::upper_bound(this->begin(), this->end(), stop); return std::make_pair(lb, up); - }; + } /** * @param start The value to start the search for the next bookmark. diff --git a/src/breadcrumb.hh b/src/breadcrumb.hh index c69e9f8c..051ba2bd 100644 --- a/src/breadcrumb.hh +++ b/src/breadcrumb.hh @@ -48,6 +48,11 @@ struct possibility { possibility() = default; + bool operator<(const possibility& rhs) const { return p_key < rhs.p_key; } + bool operator>(const possibility& rhs) const { return rhs < *this; } + bool operator<=(const possibility& rhs) const { return !(rhs < *this); } + bool operator>=(const possibility& rhs) const { return !(*this < rhs); } + std::string p_key; attr_line_t p_display_value; }; diff --git a/src/breadcrumb_curses.cc b/src/breadcrumb_curses.cc index 0490939e..806b5bc3 100644 --- a/src/breadcrumb_curses.cc +++ b/src/breadcrumb_curses.cc @@ -110,21 +110,21 @@ breadcrumb_curses::reload_data() auto& selected_crumb_ref = this->bc_focused_crumbs[this->bc_selected_crumb.value()]; - this->bc_possible_values = selected_crumb_ref.c_possibility_provider() - | lnav::itertools::sort_with([](const auto& lhs, const auto& rhs) { - return strnatcasecmp(lhs.p_key.size(), - lhs.p_key.data(), - rhs.p_key.size(), - rhs.p_key.data()) - < 0; - }); + this->bc_possible_values = selected_crumb_ref.c_possibility_provider(); nonstd::optional selected_value; this->bc_similar_values = this->bc_possible_values | lnav::itertools::similar_to( [](const auto& elem) { return elem.p_key; }, this->bc_current_search, - INT_MAX); + 128) + | lnav::itertools::sort_with([](const auto& lhs, const auto& rhs) { + return strnatcasecmp(lhs.p_key.size(), + lhs.p_key.data(), + rhs.p_key.size(), + rhs.p_key.data()) + < 0; + }); if (selected_crumb_ref.c_key.is() && selected_crumb_ref.c_expected_input != breadcrumb::crumb::expected_input_t::anything) diff --git a/src/document.sections.cc b/src/document.sections.cc index 53ff63df..b4a03dcf 100644 --- a/src/document.sections.cc +++ b/src/document.sections.cc @@ -409,7 +409,6 @@ private: return; } - const auto& pi = this->sw_scanner.get_input().get_string(); auto new_node = this->sw_hier_stage != nullptr ? std::move(this->sw_hier_stage) : std::make_unique(); diff --git a/src/file_collection.cc b/src/file_collection.cc index 57c0c26c..f490f79f 100644 --- a/src/file_collection.cc +++ b/src/file_collection.cc @@ -637,3 +637,10 @@ file_collection::rescan_files(bool required) return retval; } + +void +file_collection::request_close(const std::shared_ptr& lf) +{ + lf->close(); + this->fc_files_generation += 1; +} diff --git a/src/file_collection.hh b/src/file_collection.hh index 9e6928e1..47a3788f 100644 --- a/src/file_collection.hh +++ b/src/file_collection.hh @@ -162,6 +162,8 @@ struct file_collection { void merge(file_collection& other); + void request_close(const std::shared_ptr& lf); + void close_files(const std::vector>& files); void regenerate_unique_file_names(); diff --git a/src/formats/vmw_log.json b/src/formats/vmw_log.json index 2990a87d..5393616d 100644 --- a/src/formats/vmw_log.json +++ b/src/formats/vmw_log.json @@ -6,7 +6,7 @@ "url": "http://kb.vmware.com/kb/2004201", "regex": { "6.0+": { - "pattern": "^(?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}(?:Z|[-+]\\d{2}:\\d{2})) (?\\w+) (?[\\w\\-]+)\\[(?\\w+)\\] \\[(?[^ \\]]+)\\s*(?: sub=(?.+?))?(?: opI(?:D|d)=(?[^\\]]+))?(?: user=(?[^ \\]]+))?\\]\\s*(?.*)(?:\\n.*)?$" + "pattern": "^(?:\\[#\\d+\\] )?(?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}(?:Z|[-+]\\d{2}:\\d{2})) (?\\w+) (?[\\w\\-]+)\\[(?\\w+)\\] \\[(?[^ \\]]+)\\s*(?: sub=(?Http2(?:Client)?Session #\\d+|HTTP session map|HTTP server|Memory checker|Vimsvc\\.Ticket((?: |\\-)[0-9a-fA-F]{2})+|Req@(?:[\\w\\.\\-@/:]+)(?: M?[\\d\\.]+(?:U[\\d\\.]+)?)?|(?:SSL )?(?:[\\w\\.\\-@/:]+(?:\\[[0-9a-fA-F]+\\])?(?:\\([0-9a-fA-F]+\\))?(?:\\{\\d+\\})?)+)?)?(?:\\s+item=(?[\\w\\.\\-@/:]+))?(?: opI(?:D|d)=(?[^\\]]+))?(?: user=(?[^ \\]]+))?(?:\\s+reason=(?[^\\]]+))?\\]\\s*(?.*)(?:\\n.*)?$" }, "6.0+-nosrc": { "pattern": "^(?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}(?:Z|[-+]\\d{2}:\\d{2})) (?\\w+) (?[\\w\\-]+)\\[(?\\w+)\\] \\[(?:opI(?:D|d)=(?[^\\]]+))\\]\\s*(?.*)(?:\\n.*)?$" @@ -41,9 +41,11 @@ }, "level-field": "level", "level": { - "error": "(?i)(alert|crit|emerg|error|fatal|panic)", - "warning": "(?i)(warning|warn)", - "trace": "verbose" + "info": "^(?i)info$", + "debug": "^(?i)debug$", + "error": "^(?i)(alert|crit|emerg|error|fatal|panic)$", + "warning": "^(?i)(warning|warn)$", + "trace": "^(?i)verbose$" }, "opid-field": "opid", "value": { @@ -71,6 +73,10 @@ "kind": "string", "identifier": true }, + "item": { + "kind": "string", + "identifier": true + }, "opid": { "kind": "string", "identifier": true @@ -79,6 +85,9 @@ "kind": "string", "identifier": true }, + "reason": { + "kind": "string" + }, "file": { "kind": "string", "identifier": true @@ -138,6 +147,33 @@ }, { "line": "2022-06-01T13:24:08.243Z Section for vdtc, pid=4774, version=e.x.p, build=19889761, option=Release" + }, + { + "line": "2022-06-02T12:21:26.285Z info vmware-vum-server[00932] [Originator@6876 sub=SessionAuthData reason=Timeout expired] [vciSessionAuthData 94] Session [521601f2-6eb3-0475-7be8-c30eed1040ab] is closed" + }, + { + "line": "2022-06-01T20:17:31.352Z info vpxd[27059] [Originator@6876 sub=drmLogger item=FixNIOCViolation opID=SWI-5441881e] FixNIOCViolation worker starts for host [vim.HostSystem:host-588,esx-3-23.vlcm.com]" + }, + { + "line": "2022-06-01T14:23:06.536Z info vpxd[27349] [Originator@6876 sub=Http2Session #28] Starting a Http2Session (server): , >" + }, + { + "line": "2022-06-02T08:34:54.811Z info vpxd[44568] [Originator@6876 sub=SoapAdapter[0].HTTPService] Max buffered response size is 104857600 bytes" + }, + { + "line": "2022-06-02T08:34:55.613Z info vpxd[44568] [Originator@6876 sub=SSL SoapAdapter[1].HTTPService] Max buffered response size is 104857600 bytes" + }, + { + "line": "2022-06-02T08:34:55.753Z info vpxd[44568] [Originator@6876 sub=Req@vsan/VMC M5] Created version logger for vsan/VMC M5 (vsan.version.version8)" + }, + { + "line": "2022-06-02T08:34:55.421Z info vpxd[44568] [Originator@6876 sub=Req@vsan/vSAN 7.0U2] Created version logger for vsan/vSAN 7.0U2 (vsan.version.version16)" + }, + { + "line": "2022-06-02T08:33:42.327Z info StatsMonitor[40881] [Originator@6876 sub=LinuxStatsProvider(00005575a7a395f0)] Created" + }, + { + "line": "2022-06-02T08:33:42.692Z info rhttpproxy[40998] [Originator@6876 sub=WorkQueue.rhttpproxy.packetsniffer[0000562e3c06fee0].queue] Created: WorkQueue.rhttpproxy.packetsniffer[0000562e3c06fee0].queue, type = serial, priority = 16, itemWeight = 1" } ] } diff --git a/src/lnav.cc b/src/lnav.cc index 19cf0cbb..5655da5e 100644 --- a/src/lnav.cc +++ b/src/lnav.cc @@ -1478,9 +1478,11 @@ looper() } else if (in_revents & POLLIN) { int ch; + auto old_gen + = lnav_data.ld_active_files.fc_files_generation; while ((ch = getch()) != ERR) { lnav_data.ld_user_message_source.clear(); - + alerter::singleton().new_input(ch); lnav_data.ld_input_dispatcher.new_input(current_time, @@ -1504,7 +1506,13 @@ looper() case ln_mode_t::PAGING: case ln_mode_t::FILTER: case ln_mode_t::FILES: - next_rescan_time = next_status_update_time + 1s; + if (old_gen + == lnav_data.ld_active_files + .fc_files_generation) { + next_rescan_time = next_status_update_time + 1s; + } else { + next_rescan_time = next_status_update_time; + } break; case ln_mode_t::BREADCRUMBS: case ln_mode_t::COMMAND: diff --git a/src/lnav_commands.cc b/src/lnav_commands.cc index 0775e691..4502ef61 100644 --- a/src/lnav_commands.cc +++ b/src/lnav_commands.cc @@ -2507,7 +2507,7 @@ com_close(exec_context& ec, std::string cmdline, std::vector& args) return ec.make_error("no text files are opened"); } else { fn = tss.current_file()->get_filename(); - tss.current_file()->close(); + lnav_data.ld_active_files.request_close(tss.current_file()); if (tss.size() == 1) { lnav_data.ld_view_stack.pop_back(); @@ -2525,7 +2525,7 @@ com_close(exec_context& ec, std::string cmdline, std::vector& args) actual_path = lf->get_actual_path(); fn = lf->get_filename(); if (!ec.ec_dry_run) { - lf->close(); + lnav_data.ld_active_files.request_close(lf); } } } else { diff --git a/src/log_format.cc b/src/log_format.cc index e1cdf104..c8cdb3d1 100644 --- a/src/log_format.cc +++ b/src/log_format.cc @@ -647,7 +647,7 @@ external_log_format::scan_for_partial(shared_buffer_ref& sbr, return false; } - auto pat = this->elf_pattern_order[this->last_pattern_index()]; + auto& pat = this->elf_pattern_order[this->last_pattern_index()]; pcre_input pi(sbr.get_data(), 0, sbr.length()); if (!this->lf_multiline) { @@ -682,7 +682,8 @@ log_format::scan_result_t external_log_format::scan(logfile& lf, std::vector& dst, const line_info& li, - shared_buffer_ref& sbr) + shared_buffer_ref& sbr, + scan_batch_context& sbc) { if (this->elf_type == elf_type_t::ELF_TYPE_JSON) { yajlpp_parse_context& ypc = *(this->jlf_parse_context); @@ -781,8 +782,8 @@ external_log_format::scan(logfile& lf, int pat_index = orig_lock; while (::next_format(this->elf_pattern_order, curr_fmt, pat_index)) { - auto fpat = this->elf_pattern_order[curr_fmt]; - auto& pat = fpat->p_pcre; + auto* fpat = this->elf_pattern_order[curr_fmt].get(); + auto* pat = fpat->p_pcre.get(); if (fpat->p_module_format) { continue; @@ -840,7 +841,7 @@ external_log_format::scan(logfile& lf, } } - log_level_t level = this->convert_level(pi, level_cap); + auto level = this->convert_level(pi, level_cap); this->lf_timestamp_flags = log_time_tm.et_flags; @@ -854,12 +855,12 @@ external_log_format::scan(logfile& lf, if (opid_cap != nullptr && !opid_cap->empty()) { auto opid_str = pi.get_substr(opid_cap); { - safe::WriteAccess writable_opid_map( - lf.get_opids()); - auto opid_iter = writable_opid_map->find(opid_str); + auto opid_iter = sbc.sbc_opids.find(opid_str); - if (opid_iter == writable_opid_map->end()) { - (*writable_opid_map)[opid_str] = log_tv; + if (opid_iter == sbc.sbc_opids.end()) { + sbc.sbc_opids[opid_str] = opid_time_range{log_tv, log_tv}; + } else { + opid_iter->second.otr_end = log_tv; } } opid = hash_str(pi.get_substr_start(opid_cap), opid_cap->length()); @@ -992,7 +993,7 @@ external_log_format::module_scan(const pcre_input& pi, int curr_fmt = -1, fmt_lock = -1; while (::next_format(elf->elf_pattern_order, curr_fmt, fmt_lock)) { - auto fpat = elf->elf_pattern_order[curr_fmt]; + auto& fpat = elf->elf_pattern_order[curr_fmt]; auto& pat = fpat->p_pcre; if (!fpat->p_module_format) { diff --git a/src/log_format.hh b/src/log_format.hh index 12068934..5f52e138 100644 --- a/src/log_format.hh +++ b/src/log_format.hh @@ -341,7 +341,8 @@ public: virtual scan_result_t scan(logfile& lf, std::vector& dst, const line_info& li, - shared_buffer_ref& sbr) + shared_buffer_ref& sbr, + scan_batch_context& sbc) = 0; virtual bool scan_for_partial(shared_buffer_ref& sbr, size_t& len_out) const diff --git a/src/log_format_ext.hh b/src/log_format_ext.hh index 4b374145..9a60022a 100644 --- a/src/log_format_ext.hh +++ b/src/log_format_ext.hh @@ -143,7 +143,8 @@ public: scan_result_t scan(logfile& lf, std::vector& dst, const line_info& offset, - shared_buffer_ref& sbr); + shared_buffer_ref& sbr, + scan_batch_context& sbc); bool scan_for_partial(shared_buffer_ref& sbr, size_t& len_out) const; diff --git a/src/log_format_fwd.hh b/src/log_format_fwd.hh index 80d2b85e..2968035c 100644 --- a/src/log_format_fwd.hh +++ b/src/log_format_fwd.hh @@ -32,6 +32,8 @@ #ifndef lnav_log_format_fwd_hh #define lnav_log_format_fwd_hh +#include + #include #include "base/file_range.hh" @@ -42,6 +44,17 @@ class log_format; +struct opid_time_range { + struct timeval otr_begin; + struct timeval otr_end; +}; + +using log_opid_map = std::unordered_map; + +struct scan_batch_context { + log_opid_map sbc_opids; +}; + /** * Metadata for a single line in a log file. */ diff --git a/src/log_format_impls.cc b/src/log_format_impls.cc index 21e1ab46..972ca54d 100644 --- a/src/log_format_impls.cc +++ b/src/log_format_impls.cc @@ -160,7 +160,8 @@ class generic_log_format : public log_format { scan_result_t scan(logfile& lf, std::vector& dst, const line_info& li, - shared_buffer_ref& sbr) override + shared_buffer_ref& sbr, + scan_batch_context& sbc) override { struct exttm log_time; struct timeval log_tv; @@ -522,7 +523,8 @@ public: scan_result_t scan(logfile& lf, std::vector& dst, const line_info& li, - shared_buffer_ref& sbr) override + shared_buffer_ref& sbr, + scan_batch_context& sbc) override { static const pcrepp SEP_RE(R"(^#separator\s+(.+))"); @@ -1136,7 +1138,8 @@ public: scan_result_t scan(logfile& lf, std::vector& dst, const line_info& li, - shared_buffer_ref& sbr) override + shared_buffer_ref& sbr, + scan_batch_context& sbc) override { static const auto* W3C_LOG_NAME = intern_string::lookup("w3c_log"); static const auto* X_FIELDS_NAME = intern_string::lookup("x_fields"); @@ -1603,7 +1606,8 @@ public: scan_result_t scan(logfile& lf, std::vector& dst, const line_info& li, - shared_buffer_ref& sbr) override + shared_buffer_ref& sbr, + scan_batch_context& sbc) override { auto p = logfmt::parser( string_fragment{sbr.get_data(), 0, (int) sbr.length()}); diff --git a/src/log_vtab_impl.cc b/src/log_vtab_impl.cc index cad16ba8..c60e24a3 100644 --- a/src/log_vtab_impl.cc +++ b/src/log_vtab_impl.cc @@ -203,6 +203,15 @@ log_vtab_impl::is_valid(log_cursor& lc, logfile_sub_source& lss) return false; } + if (lc.lc_log_path && lf->get_filename() != lc.lc_log_path.value()) { + return false; + } + + if (lc.lc_unique_path && lf->get_unique_path() != lc.lc_unique_path.value()) + { + return false; + } + if (lc.lc_opid && lf_iter->get_opid() != lc.lc_opid.value().value) { return false; } @@ -967,6 +976,11 @@ vt_filter(sqlite3_vtab_cursor* p_vtc, if (col > (VT_COL_MAX + vt->vi->vi_column_count - 1)) { int post_col_number = col - (VT_COL_MAX + vt->vi->vi_column_count - 1) - 1; + nonstd::optional min_time; + nonstd::optional max_time; + nonstd::optional opid_val; + nonstd::optional log_path; + nonstd::optional unique_path; switch (post_col_number) { case 0: { @@ -976,7 +990,6 @@ vt_filter(sqlite3_vtab_cursor* p_vtc, const auto* opid = (const char*) sqlite3_value_text(argv[lpc]); auto opid_len = sqlite3_value_bytes(argv[lpc]); - nonstd::optional min_time; for (const auto& file_data : *vt->lss) { safe::ReadAccess r_opid_map( @@ -986,43 +999,100 @@ vt_filter(sqlite3_vtab_cursor* p_vtc, continue; } if (!min_time - || iter->second < min_time.value()) { - min_time = iter->second; + || iter->second.otr_begin + < min_time.value()) { + min_time = iter->second.otr_begin; + } + if (!max_time + || max_time.value() < iter->second.otr_end) + { + max_time = iter->second.otr_end; } } - if (!min_time) { - log_debug("no min time"); - p_cur->log_cursor.lc_curr_line - = p_cur->log_cursor.lc_end_line; - continue; - } - log_debug("found min time: %d.%06d", - min_time.value().tv_sec, - min_time.value().tv_usec); - auto vl_opt - = vt->lss->row_for_time(min_time.value()); - if (!vl_opt) { - log_debug("time not found"); - p_cur->log_cursor.lc_curr_line - = p_cur->log_cursor.lc_end_line; + opid_val = log_cursor::opid_hash{ + static_cast( + hash_str(opid, opid_len))}; + log_debug("filter opid %d", opid_val.value().value); + break; + } + case 3: { + if (sqlite3_value_type(argv[lpc]) != SQLITE3_TEXT) { continue; } - log_debug("got row %d", (int) vl_opt.value()); - p_cur->log_cursor.update( - index[lpc].op, - vl_opt.value(), - log_cursor::constraint_t::none); + const auto* filename + = (const char*) sqlite3_value_text(argv[lpc]); + auto fn_len = sqlite3_value_bytes(argv[lpc]); + const auto fn_str = std::string(filename, fn_len); - log_cursor::opid_hash opid_val; - opid_val.value = hash_str(opid, opid_len); - p_cur->log_cursor.lc_opid = opid_val; - log_debug("filter opid %d", - p_cur->log_cursor.lc_opid.value().value); + for (const auto& file_data : *vt->lss) { + auto lf = file_data->get_file_ptr(); + if (fn_str == lf->get_filename()) { + min_time = lf->front().get_timeval(); + max_time = lf->back().get_timeval(); + } + } + if (min_time) { + log_path = std::move(fn_str); + } + break; + } + case 4: { + if (sqlite3_value_type(argv[lpc]) != SQLITE3_TEXT) { + continue; + } + + const auto* filename + = (const char*) sqlite3_value_text(argv[lpc]); + auto fn_len = sqlite3_value_bytes(argv[lpc]); + const auto fn_str = std::string(filename, fn_len); + + for (const auto& file_data : *vt->lss) { + auto lf = file_data->get_file_ptr(); + if (fn_str == lf->get_unique_path()) { + min_time = lf->front().get_timeval(); + max_time = lf->back().get_timeval(); + } + } + if (min_time) { + unique_path = std::move(fn_str); + } break; } } + + if (!min_time) { + log_debug("no min time"); + p_cur->log_cursor.lc_curr_line + = p_cur->log_cursor.lc_end_line; + continue; + } + + log_debug("found min time: %d.%06d", + min_time.value().tv_sec, + min_time.value().tv_usec); + auto vl_opt = vt->lss->row_for_time(min_time.value()); + if (!vl_opt) { + log_debug("time not found"); + p_cur->log_cursor.lc_curr_line + = p_cur->log_cursor.lc_end_line; + continue; + } + auto vl_max_opt = vt->lss->row_for_time(max_time.value()); + + log_debug("got row %d", (int) vl_opt.value()); + p_cur->log_cursor.update(index[lpc].op, + vl_opt.value(), + log_cursor::constraint_t::none); + if (vl_max_opt) { + log_debug("got max row %d", (int) vl_max_opt.value()); + p_cur->log_cursor.lc_end_line + = vl_max_opt.value() + 1_vl; + } + p_cur->log_cursor.lc_opid = opid_val; + p_cur->log_cursor.lc_log_path = log_path; + p_cur->log_cursor.lc_unique_path = unique_path; } break; } @@ -1068,6 +1138,7 @@ vt_best_index(sqlite3_vtab* tab, sqlite3_index_info* p_info) } auto col = p_info->aConstraint[lpc].iColumn; + log_debug("column number %d", col); switch (col) { case VT_COL_LINE_NUMBER: { log_debug("line number index %d", p_info->aConstraint[lpc].op); @@ -1081,6 +1152,7 @@ vt_best_index(sqlite3_vtab* tab, sqlite3_index_info* p_info) int post_col_number = col - (VT_COL_MAX + vt->vi->vi_column_count - 1) - 1; + log_debug("post column numer %d", post_col_number); switch (post_col_number) { case 0: { log_debug("opid index"); @@ -1089,6 +1161,20 @@ vt_best_index(sqlite3_vtab* tab, sqlite3_index_info* p_info) p_info->aConstraintUsage[lpc].argvIndex = argvInUse; break; } + case 3: { + log_debug("log_path index"); + argvInUse += 1; + indexes.push_back(p_info->aConstraint[lpc]); + p_info->aConstraintUsage[lpc].argvIndex = argvInUse; + break; + } + case 4: { + log_debug("log_unique_path index"); + argvInUse += 1; + indexes.push_back(p_info->aConstraint[lpc]); + p_info->aConstraintUsage[lpc].argvIndex = argvInUse; + break; + } } } break; diff --git a/src/log_vtab_impl.hh b/src/log_vtab_impl.hh index 3ba5da6f..0bf75f2c 100644 --- a/src/log_vtab_impl.hh +++ b/src/log_vtab_impl.hh @@ -66,6 +66,8 @@ struct log_cursor { vis_line_t lc_end_line; nonstd::optional lc_opid; + nonstd::optional lc_log_path; + nonstd::optional lc_unique_path; enum class constraint_t { none, diff --git a/src/logfile.cc b/src/logfile.cc index 980c3f1d..beff8891 100644 --- a/src/logfile.cc +++ b/src/logfile.cc @@ -174,7 +174,9 @@ logfile::set_format_base_time(log_format* lf) } bool -logfile::process_prefix(shared_buffer_ref& sbr, const line_info& li) +logfile::process_prefix(shared_buffer_ref& sbr, + const line_info& li, + scan_batch_context& sbc) { log_format::scan_result_t found = log_format::SCAN_NO_MATCH; size_t prescan_size = this->lf_index.size(); @@ -186,7 +188,7 @@ logfile::process_prefix(shared_buffer_ref& sbr, const line_info& li) prescan_time = this->lf_index[prescan_size - 1].get_time(); } /* We've locked onto a format, just use that scanner. */ - found = this->lf_format->scan(*this, this->lf_index, li, sbr); + found = this->lf_format->scan(*this, this->lf_index, li, sbr, sbc); } else if (this->lf_options.loo_detect_format && this->lf_index.size() < injector::get() @@ -222,7 +224,7 @@ logfile::process_prefix(shared_buffer_ref& sbr, const line_info& li) (*iter)->clear(); this->set_format_base_time(iter->get()); - found = (*iter)->scan(*this, this->lf_index, li, sbr); + found = (*iter)->scan(*this, this->lf_index, li, sbr, sbc); if (found == log_format::SCAN_MATCH) { #if 0 require(this->lf_index.size() == 1 || @@ -458,6 +460,7 @@ logfile::rebuild_index(nonstd::optional deadline) log_debug( "loading file... %s:%d", this->lf_filename.c_str(), begin_size); } + scan_batch_context sbc; auto prev_range = file_range{off}; while (limit > 0) { auto load_result = this->lf_line_buffer.load_next_line(prev_range); @@ -524,7 +527,7 @@ logfile::rebuild_index(nonstd::optional deadline) this->lf_longest_line = std::max(this->lf_longest_line, sbr.length()); this->lf_partial_line = li.li_partial; - sort_needed = this->process_prefix(sbr, li) || sort_needed; + sort_needed = this->process_prefix(sbr, li, sbc) || sort_needed; if (old_size > this->lf_index.size()) { old_size = 0; @@ -606,6 +609,28 @@ logfile::rebuild_index(nonstd::optional deadline) this->lf_index_size = prev_range.next_offset(); this->lf_stat = st; + { + safe::WriteAccess writable_opid_map( + this->lf_opids); + + for (const auto& opid_pair : sbc.sbc_opids) { + auto opid_iter = writable_opid_map->find(opid_pair.first); + + if (opid_iter == writable_opid_map->end()) { + writable_opid_map->emplace(opid_pair); + } else { + if (opid_pair.second.otr_begin + < opid_iter->second.otr_begin) { + opid_iter->second.otr_begin + = opid_pair.second.otr_begin; + } + if (opid_iter->second.otr_end < opid_pair.second.otr_end) { + opid_iter->second.otr_end = opid_pair.second.otr_end; + } + } + } + } + if (sort_needed) { retval = rebuild_result_t::NEW_ORDER; } else { diff --git a/src/logfile.hh b/src/logfile.hh index 253db247..1d7d232e 100644 --- a/src/logfile.hh +++ b/src/logfile.hh @@ -365,8 +365,7 @@ public: note_map get_notes() const { return *this->lf_notes.readAccess(); } - using opid_map = std::unordered_map; - using safe_opid_map = safe::Safe; + using safe_opid_map = safe::Safe; safe_opid_map& get_opids() { return this->lf_opids; } @@ -378,7 +377,9 @@ protected: * @param prefix The contents of the line. * @param len The length of the 'prefix' string. */ - bool process_prefix(shared_buffer_ref& sbr, const line_info& li); + bool process_prefix(shared_buffer_ref& sbr, + const line_info& li, + scan_batch_context& sbc); void set_format_base_time(log_format* lf); diff --git a/src/logfile_sub_source.cc b/src/logfile_sub_source.cc index 7a9358fa..c2559587 100644 --- a/src/logfile_sub_source.cc +++ b/src/logfile_sub_source.cc @@ -1452,6 +1452,15 @@ logfile_sub_source::eval_sql_filter(sqlite3_stmt* stmt, } continue; } + if (strcmp(name, ":log_format") == 0) { + const auto format_name = format->get_name(); + sqlite3_bind_text(stmt, + lpc + 1, + format_name.get(), + format_name.size(), + SQLITE_STATIC); + continue; + } if (strcmp(name, ":log_path") == 0) { const auto& filename = lf->get_filename(); sqlite3_bind_text(stmt, @@ -1461,6 +1470,15 @@ logfile_sub_source::eval_sql_filter(sqlite3_stmt* stmt, SQLITE_STATIC); continue; } + if (strcmp(name, ":log_unique_path") == 0) { + const auto& filename = lf->get_unique_path(); + sqlite3_bind_text(stmt, + lpc + 1, + filename.c_str(), + filename.length(), + SQLITE_STATIC); + continue; + } if (strcmp(name, ":log_text") == 0) { sqlite3_bind_text( stmt, lpc + 1, sbr.get_data(), sbr.length(), SQLITE_STATIC); @@ -1481,6 +1499,21 @@ logfile_sub_source::eval_sql_filter(sqlite3_stmt* stmt, } continue; } + if (strcmp(name, ":log_opid") == 0) { + auto opid_attr_opt = get_string_attr(sa, logline::L_OPID); + if (opid_attr_opt) { + auto& sar = opid_attr_opt.value().saw_string_attr->sa_range; + + sqlite3_bind_text(stmt, + lpc + 1, + sbr.get_data_at(sar.lr_start), + sar.length(), + SQLITE_STATIC); + } else { + sqlite3_bind_null(stmt, lpc + 1); + } + continue; + } if (strcmp(name, ":log_raw_text") == 0) { auto res = lf->read_raw_message(ll); @@ -1645,20 +1678,14 @@ logfile_sub_source::remove_file(std::shared_ptr lf) mark_iter != this->lss_user_marks.end(); ++mark_iter) { - content_line_t mark_curr - = content_line_t(file_index * MAX_LINES_PER_FILE); - content_line_t mark_end + auto mark_curr = content_line_t(file_index * MAX_LINES_PER_FILE); + auto mark_end = content_line_t((file_index + 1) * MAX_LINES_PER_FILE); - bookmark_vector::iterator bv_iter; - bookmark_vector& bv = mark_iter->second; + auto& bv = mark_iter->second; + auto file_range = bv.equal_range(mark_curr, mark_end); - while ((bv_iter = std::lower_bound(bv.begin(), bv.end(), mark_curr)) - != bv.end()) - { - if (*bv_iter >= mark_end) { - break; - } - mark_iter->second.erase(bv_iter); + if (file_range.first != file_range.second) { + bv.erase(file_range.first, file_range.second); } } @@ -2133,22 +2160,18 @@ logfile_sub_source::text_crumbs_for_line(int line, opid_str, attr_line_t().append(lnav::roles::identifier(opid_str)), [this]() -> std::vector { - std::set opids; + std::vector retval; for (const auto& file_data : this->lss_files) { safe::ReadAccess r_opid_map( file_data->get_file_ptr()->get_opids()); for (const auto& pair : *r_opid_map) { - opids.insert(pair.first); + retval.emplace_back(pair.first); } } - return opids | lnav::itertools::map([](const auto& elem) { - return breadcrumb::possibility{ - elem, - }; - }); + return retval; }, [ec = this->lss_exec_context](const auto& opid) { static const std::string MOVE_STMT = R"(;UPDATE lnav_views diff --git a/src/plain_text_source.cc b/src/plain_text_source.cc index bbf9f769..0f0c02ef 100644 --- a/src/plain_text_source.cc +++ b/src/plain_text_source.cc @@ -79,7 +79,13 @@ plain_text_source::replace_with(const attr_line_t& text_lines) { this->tds_lines.clear(); this->tds_doc_sections = lnav::document::discover_metadata(text_lines); - this->tds_lines = to_text_line(text_lines.split_lines()); + + file_off_t off = 0; + for (auto& line : text_lines.split_lines()) { + auto line_len = line.length() + 1; + this->tds_lines.emplace_back(off, std::move(line)); + off += line_len; + } this->tds_longest_line = this->compute_longest_line(); return *this; } diff --git a/src/pretty_printer.hh b/src/pretty_printer.hh index 339051fa..85d46624 100644 --- a/src/pretty_printer.hh +++ b/src/pretty_printer.hh @@ -93,6 +93,10 @@ public: std::unique_ptr take_hier_root() { + if (this->pp_hier_stage == nullptr && !this->pp_hier_nodes.empty()) { + this->pp_hier_stage = std::move(this->pp_hier_nodes.back()); + this->pp_hier_nodes.pop_back(); + } return std::move(this->pp_hier_stage); } diff --git a/src/readline_possibilities.cc b/src/readline_possibilities.cc index 3998b6aa..8c77d850 100644 --- a/src/readline_possibilities.cc +++ b/src/readline_possibilities.cc @@ -223,7 +223,10 @@ add_filter_expr_possibilities(readline_curses* rlc, ":log_mark", ":log_comment", ":log_tags", + ":log_opid", + ":log_format", ":log_path", + ":log_unique_path", ":log_text", ":log_body", ":log_raw_text", diff --git a/src/sql_util.cc b/src/sql_util.cc index 43a624cd..1d34e0f6 100644 --- a/src/sql_util.cc +++ b/src/sql_util.cc @@ -961,11 +961,13 @@ annotate_sql_statement(attr_line_t& al) bool found_open = false; ssize_t lpc; + start = iter->sa_range.lr_end; for (lpc = iter->sa_range.lr_end; lpc < (int) line.length(); lpc++) { if (line[lpc] == '(') { found_open = true; break; - } else if (!isspace(line[lpc])) { + } + if (!isspace(line[lpc])) { break; } } @@ -994,8 +996,6 @@ annotate_sql_statement(attr_line_t& al) } sa.emplace_back(func_range, SQL_FUNCTION_ATTR.value()); } - - start = iter->sa_range.lr_end; } remove_string_attr(sa, &SQL_PAREN_ATTR); diff --git a/src/views_vtab.cc b/src/views_vtab.cc index c185e23e..d8311e24 100644 --- a/src/views_vtab.cc +++ b/src/views_vtab.cc @@ -280,6 +280,8 @@ CREATE TABLE lnav_views ( break; } case 10: { + static const size_t MAX_POSSIBILITIES = 128; + auto* tss = tc.get_sub_source(); if (tss != nullptr && tss->text_line_count() > 0) { @@ -314,10 +316,14 @@ CREATE TABLE lnav_views ( }; }); for (const auto& crumb : crumbs) { + auto poss = crumb.c_possibility_provider(); + if (poss.size() > MAX_POSSIBILITIES) { + poss.resize(MAX_POSSIBILITIES); + } tlm.tlm_crumbs.emplace_back( crumb.c_display_value.get_string(), crumb.c_search_placeholder, - crumb.c_possibility_provider()); + std::move(poss)); } auto ret = top_line_meta_handlers.to_json_string(tlm); to_sqlite(ctx, ret); diff --git a/test/drive_data_scanner.cc b/test/drive_data_scanner.cc index e78a6c9e..d53d0924 100644 --- a/test/drive_data_scanner.cc +++ b/test/drive_data_scanner.cc @@ -157,13 +157,14 @@ main(int argc, char* argv[]) logfile_open_options loo; auto open_res = logfile::open(argv[lpc], loo); auto lf = open_res.unwrap(); + scan_batch_context sbc; for (iter = root_formats.begin(); iter != root_formats.end() && !found; ++iter) { line_info li = {{13}}; (*iter)->clear(); - if ((*iter)->scan(*lf, index, li, sbr) + if ((*iter)->scan(*lf, index, li, sbr, sbc) == log_format::SCAN_MATCH) { format = (*iter)->specialized(); found = true; diff --git a/test/expected/test_cmds.sh_0b1e4b1523dfca71927b1fe721c74490c51361d1.out b/test/expected/test_cmds.sh_0b1e4b1523dfca71927b1fe721c74490c51361d1.out index f8b9bd37..689436ef 100644 --- a/test/expected/test_cmds.sh_0b1e4b1523dfca71927b1fe721c74490c51361d1.out +++ b/test/expected/test_cmds.sh_0b1e4b1523dfca71927b1fe721c74490c51361d1.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:21:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:21:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:21:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:21:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_0f0ab532d8d845f8201af65bf5f6fc994e21a8aa.out b/test/expected/test_cmds.sh_0f0ab532d8d845f8201af65bf5f6fc994e21a8aa.out index a90f29fd..0dd4cb7f 100644 --- a/test/expected/test_cmds.sh_0f0ab532d8d845f8201af65bf5f6fc994e21a8aa.out +++ b/test/expected/test_cmds.sh_0f0ab532d8d845f8201af65bf5f6fc994e21a8aa.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_109a44ac6a8f1be2736c8e9c47aeed187e0581ee.out b/test/expected/test_cmds.sh_109a44ac6a8f1be2736c8e9c47aeed187e0581ee.out index a9dd3d00..d51a68cd 100644 --- a/test/expected/test_cmds.sh_109a44ac6a8f1be2736c8e9c47aeed187e0581ee.out +++ b/test/expected/test_cmds.sh_109a44ac6a8f1be2736c8e9c47aeed187e0581ee.out @@ -1,2 +1,2 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_145126309709179759926289caf729703ef6e1c6.out b/test/expected/test_cmds.sh_145126309709179759926289caf729703ef6e1c6.out index a9dd3d00..d51a68cd 100644 --- a/test/expected/test_cmds.sh_145126309709179759926289caf729703ef6e1c6.out +++ b/test/expected/test_cmds.sh_145126309709179759926289caf729703ef6e1c6.out @@ -1,2 +1,2 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_1f53f5b16c7c5aa695ed2e6427d822a1b940fcf4.out b/test/expected/test_cmds.sh_1f53f5b16c7c5aa695ed2e6427d822a1b940fcf4.out index a90f29fd..0dd4cb7f 100644 --- a/test/expected/test_cmds.sh_1f53f5b16c7c5aa695ed2e6427d822a1b940fcf4.out +++ b/test/expected/test_cmds.sh_1f53f5b16c7c5aa695ed2e6427d822a1b940fcf4.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_1ffb06d63469f0e6dae94af026f77d5b255386c2.out b/test/expected/test_cmds.sh_1ffb06d63469f0e6dae94af026f77d5b255386c2.out index a90f29fd..0dd4cb7f 100644 --- a/test/expected/test_cmds.sh_1ffb06d63469f0e6dae94af026f77d5b255386c2.out +++ b/test/expected/test_cmds.sh_1ffb06d63469f0e6dae94af026f77d5b255386c2.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_22577861cb0921a7e7f3d1af6485938f4930ba7b.out b/test/expected/test_cmds.sh_22577861cb0921a7e7f3d1af6485938f4930ba7b.out index a9dd3d00..d51a68cd 100644 --- a/test/expected/test_cmds.sh_22577861cb0921a7e7f3d1af6485938f4930ba7b.out +++ b/test/expected/test_cmds.sh_22577861cb0921a7e7f3d1af6485938f4930ba7b.out @@ -1,2 +1,2 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_2e123104cdd2087ac40731a0aa533ba6a87ea744.out b/test/expected/test_cmds.sh_2e123104cdd2087ac40731a0aa533ba6a87ea744.out index 7cb26de2..a4f11107 100644 --- a/test/expected/test_cmds.sh_2e123104cdd2087ac40731a0aa533ba6a87ea744.out +++ b/test/expected/test_cmds.sh_2e123104cdd2087ac40731a0aa533ba6a87ea744.out @@ -1 +1 @@ -2009-07-20 22:59:30,221:ERROR:Goodbye, World! + 2009-07-20 22:59:30,221:ERROR:Goodbye, World! diff --git a/test/expected/test_cmds.sh_2ff0fe712c9b0012e42282c5f77b0b83cad37ddf.out b/test/expected/test_cmds.sh_2ff0fe712c9b0012e42282c5f77b0b83cad37ddf.out index 7cb26de2..c6eedf2b 100644 --- a/test/expected/test_cmds.sh_2ff0fe712c9b0012e42282c5f77b0b83cad37ddf.out +++ b/test/expected/test_cmds.sh_2ff0fe712c9b0012e42282c5f77b0b83cad37ddf.out @@ -1 +1 @@ -2009-07-20 22:59:30,221:ERROR:Goodbye, World! +2009-07-20 22:59:30,221:ERROR:Goodbye, World! diff --git a/test/expected/test_cmds.sh_305b1dfdfe785b945df4220aad6671ae1d364f55.out b/test/expected/test_cmds.sh_305b1dfdfe785b945df4220aad6671ae1d364f55.out index 232301d3..f586ffed 100644 --- a/test/expected/test_cmds.sh_305b1dfdfe785b945df4220aad6671ae1d364f55.out +++ b/test/expected/test_cmds.sh_305b1dfdfe785b945df4220aad6671ae1d364f55.out @@ -1 +1 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_3429080ed14d01c6a887900186f37750df0d5ff0.out b/test/expected/test_cmds.sh_3429080ed14d01c6a887900186f37750df0d5ff0.out index a9dd3d00..d51a68cd 100644 --- a/test/expected/test_cmds.sh_3429080ed14d01c6a887900186f37750df0d5ff0.out +++ b/test/expected/test_cmds.sh_3429080ed14d01c6a887900186f37750df0d5ff0.out @@ -1,2 +1,2 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_38fa2a95b703d4ce12e82882eca1938264822690.out b/test/expected/test_cmds.sh_38fa2a95b703d4ce12e82882eca1938264822690.out index 2e600e41..9ea386d0 100644 --- a/test/expected/test_cmds.sh_38fa2a95b703d4ce12e82882eca1938264822690.out +++ b/test/expected/test_cmds.sh_38fa2a95b703d4ce12e82882eca1938264822690.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET ⋮ HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET ⋮ HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET ⋮ HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET ⋮ HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_3b20a298e2c059d7f6045cbc0c07ca3db3917695.out b/test/expected/test_cmds.sh_3b20a298e2c059d7f6045cbc0c07ca3db3917695.out index a9dd3d00..d51a68cd 100644 --- a/test/expected/test_cmds.sh_3b20a298e2c059d7f6045cbc0c07ca3db3917695.out +++ b/test/expected/test_cmds.sh_3b20a298e2c059d7f6045cbc0c07ca3db3917695.out @@ -1,2 +1,2 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_453054e29aaca4c2662c45c2a1f2f63f3510d8dd.out b/test/expected/test_cmds.sh_453054e29aaca4c2662c45c2a1f2f63f3510d8dd.out index 32372ddd..93ecb561 100644 --- a/test/expected/test_cmds.sh_453054e29aaca4c2662c45c2a1f2f63f3510d8dd.out +++ b/test/expected/test_cmds.sh_453054e29aaca4c2662c45c2a1f2f63f3510d8dd.out @@ -1,2 +1,2 @@ -2009-07-20 22:59:30,221:ERROR:Goodbye, World! -2009-07-20 22:59:30,221:ERROR:Goodbye, World! +2009-07-20 22:59:30,221:ERROR:Goodbye, World! + 2009-07-20 22:59:30,221:ERROR:Goodbye, World! diff --git a/test/expected/test_cmds.sh_4f06183ed231669965965f5042fbbb507fa7deab.out b/test/expected/test_cmds.sh_4f06183ed231669965965f5042fbbb507fa7deab.out index b1c7de06..ef822cd3 100644 --- a/test/expected/test_cmds.sh_4f06183ed231669965965f5042fbbb507fa7deab.out +++ b/test/expected/test_cmds.sh_4f06183ed231669965965f5042fbbb507fa7deab.out @@ -1,3 +1,3 @@ 2009-07-20 22:59:27,672:DEBUG:Hello, World! How are you today? -2009-07-20 22:59:30,221:ERROR:Goodbye, World! +2009-07-20 22:59:30,221:ERROR:Goodbye, World! diff --git a/test/expected/test_cmds.sh_5bfd08c1639701476d7b9348c36afd46fdbe6f2a.out b/test/expected/test_cmds.sh_5bfd08c1639701476d7b9348c36afd46fdbe6f2a.out index a9dd3d00..d51a68cd 100644 --- a/test/expected/test_cmds.sh_5bfd08c1639701476d7b9348c36afd46fdbe6f2a.out +++ b/test/expected/test_cmds.sh_5bfd08c1639701476d7b9348c36afd46fdbe6f2a.out @@ -1,2 +1,2 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_624a41e152675575f4b07c19b2cf0e3a028429a2.out b/test/expected/test_cmds.sh_624a41e152675575f4b07c19b2cf0e3a028429a2.out index a9dd3d00..d51a68cd 100644 --- a/test/expected/test_cmds.sh_624a41e152675575f4b07c19b2cf0e3a028429a2.out +++ b/test/expected/test_cmds.sh_624a41e152675575f4b07c19b2cf0e3a028429a2.out @@ -1,2 +1,2 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_63e1925e9d7aadcdaa54a35a29711d7ecaad8d27.out b/test/expected/test_cmds.sh_63e1925e9d7aadcdaa54a35a29711d7ecaad8d27.out index a90f29fd..0dd4cb7f 100644 --- a/test/expected/test_cmds.sh_63e1925e9d7aadcdaa54a35a29711d7ecaad8d27.out +++ b/test/expected/test_cmds.sh_63e1925e9d7aadcdaa54a35a29711d7ecaad8d27.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_73ea99c84fb1d4570e8bcd45c423b4a28fe41e81.out b/test/expected/test_cmds.sh_73ea99c84fb1d4570e8bcd45c423b4a28fe41e81.out index a90f29fd..0dd4cb7f 100644 --- a/test/expected/test_cmds.sh_73ea99c84fb1d4570e8bcd45c423b4a28fe41e81.out +++ b/test/expected/test_cmds.sh_73ea99c84fb1d4570e8bcd45c423b4a28fe41e81.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_8298805f897346b4bb0f14e53c06b4fa28e309e3.out b/test/expected/test_cmds.sh_8298805f897346b4bb0f14e53c06b4fa28e309e3.out index 0c154aba..220b5529 100644 --- a/test/expected/test_cmds.sh_8298805f897346b4bb0f14e53c06b4fa28e309e3.out +++ b/test/expected/test_cmds.sh_8298805f897346b4bb0f14e53c06b4fa28e309e3.out @@ -1,3 +1,3 @@ ⋮ - - [20/Jul/2009:22:59:26 +0000] "GET ⋮ HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -⋮ - - [20/Jul/2009:22:59:29 +0000] "GET ⋮ HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +⋮ - - [20/Jul/2009:22:59:29 +0000] "GET ⋮ HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" ⋮ - - [20/Jul/2009:22:59:29 +0000] "GET ⋮ HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_85ed177028f226e86b1d164eb1a4e18eaf036c9d.out b/test/expected/test_cmds.sh_85ed177028f226e86b1d164eb1a4e18eaf036c9d.out index 232301d3..f586ffed 100644 --- a/test/expected/test_cmds.sh_85ed177028f226e86b1d164eb1a4e18eaf036c9d.out +++ b/test/expected/test_cmds.sh_85ed177028f226e86b1d164eb1a4e18eaf036c9d.out @@ -1 +1 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_9445861db011dfa2d21a44788047de345ee291e8.out b/test/expected/test_cmds.sh_9445861db011dfa2d21a44788047de345ee291e8.out index a90f29fd..0dd4cb7f 100644 --- a/test/expected/test_cmds.sh_9445861db011dfa2d21a44788047de345ee291e8.out +++ b/test/expected/test_cmds.sh_9445861db011dfa2d21a44788047de345ee291e8.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_95beaabe41d72cf4c6810e79c623da759ac1c71b.out b/test/expected/test_cmds.sh_95beaabe41d72cf4c6810e79c623da759ac1c71b.out index a9dd3d00..d51a68cd 100644 --- a/test/expected/test_cmds.sh_95beaabe41d72cf4c6810e79c623da759ac1c71b.out +++ b/test/expected/test_cmds.sh_95beaabe41d72cf4c6810e79c623da759ac1c71b.out @@ -1,2 +1,2 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_968dac54dc80d91a5da2322890c6c26dfa0d8462.out b/test/expected/test_cmds.sh_968dac54dc80d91a5da2322890c6c26dfa0d8462.out index ad2b37e2..2678e6c5 100644 --- a/test/expected/test_cmds.sh_968dac54dc80d91a5da2322890c6c26dfa0d8462.out +++ b/test/expected/test_cmds.sh_968dac54dc80d91a5da2322890c6c26dfa0d8462.out @@ -1 +1 @@ -10.112.81.15 - - [15/Feb/2013:06:00:31 +0000] "-" 400 0 "-" "-" +10.112.81.15 - - [15/Feb/2013:06:00:31 +0000] "-" 400 0 "-" "-" diff --git a/test/expected/test_cmds.sh_a1123427c31c022433d66d05ee5d5e1c8ab415e4.out b/test/expected/test_cmds.sh_a1123427c31c022433d66d05ee5d5e1c8ab415e4.out index a9dd3d00..d51a68cd 100644 --- a/test/expected/test_cmds.sh_a1123427c31c022433d66d05ee5d5e1c8ab415e4.out +++ b/test/expected/test_cmds.sh_a1123427c31c022433d66d05ee5d5e1c8ab415e4.out @@ -1,2 +1,2 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_b755a8b48c0f602f0270500b0117b76e11db546e.out b/test/expected/test_cmds.sh_b755a8b48c0f602f0270500b0117b76e11db546e.out index 9bc058ff..5fb4d900 100644 --- a/test/expected/test_cmds.sh_b755a8b48c0f602f0270500b0117b76e11db546e.out +++ b/test/expected/test_cmds.sh_b755a8b48c0f602f0270500b0117b76e11db546e.out @@ -25,8 +25,8 @@ Apr 7 05:49:53 Tim-Stacks-iMac.local GoogleSoftwareUpdateDaemon[17212]: -[KSUpd > -Apr 7 07:31:56 Tim-Stacks-iMac.local VirtualBox[36403]: WARNING: The Gestalt selector gestaltSystemVersion is returning 10.9.2 instead of 10.10.2. Use NSProcessInfo's operatingSystemVersion property to get correct system version number. - Call location: +Apr 7 07:31:56 Tim-Stacks-iMac.local VirtualBox[36403]: WARNING: The Gestalt selector gestaltSystemVersion is returning 10.9.2 instead of 10.10.2. Use NSProcessInfo's operatingSystemVersion property to get correct system version number. + Call location: Apr 7 07:31:56 Tim-Stacks-iMac.local VirtualBox[36403]: 0 CarbonCore 0x00007fff8a9b3d9b ___Gestalt_SystemVersion_block_invoke + 113 Apr 7 07:31:56 Tim-Stacks-iMac.local VirtualBox[36403]: 1 libdispatch.dylib 0x00007fff8bc84c13 _dispatch_client_callout + 8 Apr 7 07:32:56 Tim-Stacks-iMac.local logger[234]: Bad data { diff --git a/test/expected/test_cmds.sh_b9f8bf53ec2736432eb048d94a391175eb4dc5bf.out b/test/expected/test_cmds.sh_b9f8bf53ec2736432eb048d94a391175eb4dc5bf.out index e42e00a1..6228a973 100644 --- a/test/expected/test_cmds.sh_b9f8bf53ec2736432eb048d94a391175eb4dc5bf.out +++ b/test/expected/test_cmds.sh_b9f8bf53ec2736432eb048d94a391175eb4dc5bf.out @@ -1,2 +1,2 @@ -Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed Jan 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt diff --git a/test/expected/test_cmds.sh_bc60341827636715c14c562863da9733cbde7e68.out b/test/expected/test_cmds.sh_bc60341827636715c14c562863da9733cbde7e68.out index ad2b37e2..2678e6c5 100644 --- a/test/expected/test_cmds.sh_bc60341827636715c14c562863da9733cbde7e68.out +++ b/test/expected/test_cmds.sh_bc60341827636715c14c562863da9733cbde7e68.out @@ -1 +1 @@ -10.112.81.15 - - [15/Feb/2013:06:00:31 +0000] "-" 400 0 "-" "-" +10.112.81.15 - - [15/Feb/2013:06:00:31 +0000] "-" 400 0 "-" "-" diff --git a/test/expected/test_cmds.sh_d76d77ad95b9f120825417a6a8220c13df9541fc.out b/test/expected/test_cmds.sh_d76d77ad95b9f120825417a6a8220c13df9541fc.out index a90f29fd..0dd4cb7f 100644 --- a/test/expected/test_cmds.sh_d76d77ad95b9f120825417a6a8220c13df9541fc.out +++ b/test/expected/test_cmds.sh_d76d77ad95b9f120825417a6a8220c13df9541fc.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_dd41fbbcd71699314af232156d4155fbdf849131.out b/test/expected/test_cmds.sh_dd41fbbcd71699314af232156d4155fbdf849131.out index ba6bfe90..c1837e7d 100644 --- a/test/expected/test_cmds.sh_dd41fbbcd71699314af232156d4155fbdf849131.out +++ b/test/expected/test_cmds.sh_dd41fbbcd71699314af232156d4155fbdf849131.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [01/Jan/2010:00:00:00 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [01/Jan/2010:00:00:03 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [01/Jan/2010:00:00:03 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [01/Jan/2010:00:00:03 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_e911aebcb2defb7471aa620c45a86cad449ad505.out b/test/expected/test_cmds.sh_e911aebcb2defb7471aa620c45a86cad449ad505.out index a9dd3d00..d51a68cd 100644 --- a/test/expected/test_cmds.sh_e911aebcb2defb7471aa620c45a86cad449ad505.out +++ b/test/expected/test_cmds.sh_e911aebcb2defb7471aa620c45a86cad449ad505.out @@ -1,2 +1,2 @@ -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_json_format.sh_469f005b0708d629bc95f0c48a5e390f440c1fef.out b/test/expected/test_json_format.sh_469f005b0708d629bc95f0c48a5e390f440c1fef.out index 19433974..7cf38871 100644 --- a/test/expected/test_json_format.sh_469f005b0708d629bc95f0c48a5e390f440c1fef.out +++ b/test/expected/test_json_format.sh_469f005b0708d629bc95f0c48a5e390f440c1fef.out @@ -18,12 +18,12 @@ [2013-09-06T22:01:49.124] STATS 1 beat per second -[2013-09-06T22:01:49.124] WARNING not looking good +[2013-09-06T22:01:49.124] WARNING not looking good -[2013-09-06T22:01:49.124] ERROR looking bad +[2013-09-06T22:01:49.124] ERROR looking bad -[2013-09-06T22:01:49.124] CRITICAL sooo bad +[2013-09-06T22:01:49.124] CRITICAL sooo bad -[2013-09-06T22:01:49.124] FATAL shoot - obj: { "field1" : "hi", "field2": 2 } - arr: ["hi", {"sub1": true}] +[2013-09-06T22:01:49.124] FATAL shoot + obj: { "field1" : "hi", "field2": 2 } + arr: ["hi", {"sub1": true}] diff --git a/test/expected/test_json_format.sh_7724d1a96d74d4418dd44d7416270f9bb64b2564.out b/test/expected/test_json_format.sh_7724d1a96d74d4418dd44d7416270f9bb64b2564.out index 26692d64..c861d3a5 100644 --- a/test/expected/test_json_format.sh_7724d1a96d74d4418dd44d7416270f9bb64b2564.out +++ b/test/expected/test_json_format.sh_7724d1a96d74d4418dd44d7416270f9bb64b2564.out @@ -17,13 +17,13 @@ @fields: { "lvl": "DEBUG", "msg": "Details..."} 2013-09-06T22:01:49.124 STATS 1 beat per second @fields: { "lvl": "STATS", "msg": "1 beat per second"} -2013-09-06T22:01:49.124 WARNING not looking good - @fields: { "lvl": "WARNING", "msg": "not looking good"} -2013-09-06T22:01:49.124 ERROR looking bad - @fields: { "lvl": "ERROR", "msg": "looking bad"} -2013-09-06T22:01:49.124 CRITICAL sooo bad - @fields: { "lvl": "CRITICAL", "msg": "sooo bad"} -2013-09-06T22:01:49.124 FATAL shoot - @fields/trace#: line:1 - @fields/trace#: line:2 - @fields: { "lvl": "FATAL", "msg": "shoot", "trace": ["line:1", "line:2"]} +2013-09-06T22:01:49.124 WARNING not looking good + @fields: { "lvl": "WARNING", "msg": "not looking good"} +2013-09-06T22:01:49.124 ERROR looking bad + @fields: { "lvl": "ERROR", "msg": "looking bad"} +2013-09-06T22:01:49.124 CRITICAL sooo bad + @fields: { "lvl": "CRITICAL", "msg": "sooo bad"} +2013-09-06T22:01:49.124 FATAL shoot + @fields/trace#: line:1 + @fields/trace#: line:2 + @fields: { "lvl": "FATAL", "msg": "shoot", "trace": ["line:1", "line:2"]} diff --git a/test/expected/test_json_format.sh_84a71e94dc34661a70bb9015b67ba00e93e9cfb5.out b/test/expected/test_json_format.sh_84a71e94dc34661a70bb9015b67ba00e93e9cfb5.out index 21865019..58b44ab8 100644 --- a/test/expected/test_json_format.sh_84a71e94dc34661a70bb9015b67ba00e93e9cfb5.out +++ b/test/expected/test_json_format.sh_84a71e94dc34661a70bb9015b67ba00e93e9cfb5.out @@ -1,2 +1,2 @@ -2018-08-21T14:04:21.221 38708007 medusa-GpsLocator.service python[184] FATAL GPS Reference longitude: 7.358143333 +2018-08-21T14:04:21.221 38708007 medusa-GpsLocator.service python[184] FATAL GPS Reference longitude: 7.358143333 2018-08-21T14:04:21.221 38708007 medusa-GpsLocator.service python[184] INFO GPS Reference latitude: 46.908706667 diff --git a/test/expected/test_json_format.sh_90a037c7d9d70ac4ca97158271ea242787313377.out b/test/expected/test_json_format.sh_90a037c7d9d70ac4ca97158271ea242787313377.out index c8cafeeb..30ddacc5 100644 --- a/test/expected/test_json_format.sh_90a037c7d9d70ac4ca97158271ea242787313377.out +++ b/test/expected/test_json_format.sh_90a037c7d9d70ac4ca97158271ea242787313377.out @@ -1,3 +1,3 @@ 2017-03-24T20:06:26.240 1.1.1.1 GET 200 /example/uri/5 -2017-03-24T20:12:47.764 1.1.1.1 GET 500 /example/uri/5 -2017-03-24T20:15:31.694 1.1.1.1 GET 400 /example/uri/5 +2017-03-24T20:12:47.764 1.1.1.1 GET 500 /example/uri/5 +2017-03-24T20:15:31.694 1.1.1.1 GET 400 /example/uri/5 diff --git a/test/expected/test_json_format.sh_989e52d167582648b73c5d025cc0e814c642b3c8.out b/test/expected/test_json_format.sh_989e52d167582648b73c5d025cc0e814c642b3c8.out index 311dda2e..55dcb761 100644 --- a/test/expected/test_json_format.sh_989e52d167582648b73c5d025cc0e814c642b3c8.out +++ b/test/expected/test_json_format.sh_989e52d167582648b73c5d025cc0e814c642b3c8.out @@ -1,4 +1,4 @@ 2013-09-06T20:00:49.124 abc 49 def 0 c.e.foo Starting up service 2013-09-06T22:00:49.124 abc 49 def 0 c.e.foo Shutting down service user: steve@example.com -2013-09-06T22:01:49.124 abc 49 def 10 c.e.foo looking bad +2013-09-06T22:01:49.124 abc 49 def 10 c.e.foo looking bad diff --git a/test/expected/test_json_format.sh_a06b3cdd46b387e72d6faa4cce648b8b11ae870b.out b/test/expected/test_json_format.sh_a06b3cdd46b387e72d6faa4cce648b8b11ae870b.out index 050eaedb..b3d1273a 100644 --- a/test/expected/test_json_format.sh_a06b3cdd46b387e72d6faa4cce648b8b11ae870b.out +++ b/test/expected/test_json_format.sh_a06b3cdd46b387e72d6faa4cce648b8b11ae870b.out @@ -18,8 +18,8 @@ [2013-09-06T22:01:49.124] STATS 1 beat per secondbork bork bork -[2013-09-06T22:01:49.124] WARNING not looking goodbork bork bork +[2013-09-06T22:01:49.124] WARNING not looking goodbork bork bork -[2013-09-06T22:01:49.124] ERROR looking badbork bork bork +[2013-09-06T22:01:49.124] ERROR looking badbork bork bork -[2013-09-06T22:01:49.124] CRITICAL sooo badbork bork bork +[2013-09-06T22:01:49.124] CRITICAL sooo badbork bork bork diff --git a/test/expected/test_json_format.sh_c60050b3469f37c5b0864e1dc7eb354e91d6ec81.out b/test/expected/test_json_format.sh_c60050b3469f37c5b0864e1dc7eb354e91d6ec81.out index ca2dc68a..4bc8ab86 100644 --- a/test/expected/test_json_format.sh_c60050b3469f37c5b0864e1dc7eb354e91d6ec81.out +++ b/test/expected/test_json_format.sh_c60050b3469f37c5b0864e1dc7eb354e91d6ec81.out @@ -1,50 +1,50 @@ -2016-08-03T12:06:31.009 - ;Exception initializing page context; java.lang.NoClassDefFoundError: javax/el/StaticFieldELResolver - at org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:172) - at org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:123) - at org.apache.jsp.errors._404_002dnot_002dfound_jsp._jspService(_404_002dnot_002dfound_jsp.java:38) - at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) - at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411) - at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473) - at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at collective.config.startup.DamFilter.doFilter(DamFilter.java:270) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) - at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:488) - at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) - at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) - at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:476) - at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:345) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:210) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) - at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957) - at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) - at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) - at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620) - at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:744) -Caused by: java.lang.ClassNotFoundException: javax.el.StaticFieldELResolver - at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) - at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) - ... 33 common frames omitted +2016-08-03T12:06:31.009 - ;Exception initializing page context; java.lang.NoClassDefFoundError: javax/el/StaticFieldELResolver + at org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:172) + at org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:123) + at org.apache.jsp.errors._404_002dnot_002dfound_jsp._jspService(_404_002dnot_002dfound_jsp.java:38) + at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) + at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) + at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411) + at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473) + at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377) + at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) + at collective.config.startup.DamFilter.doFilter(DamFilter.java:270) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) + at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) + at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:488) + at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) + at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) + at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:476) + at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:345) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:210) + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) + at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957) + at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683) + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) + at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) + at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620) + at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) + at java.lang.Thread.run(Thread.java:744) +Caused by: java.lang.ClassNotFoundException: javax.el.StaticFieldELResolver + at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) + at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) + ... 33 common frames omitted - @version: 1 - logger_name: org.apache.jasper.runtime.JspFactoryImpl - thread_name: http-bio-0.0.0.0-8081-exec-198 - level: ERROR - customer: foobaz -2016-08-03T12:06:31.009 - ;Exception initializing page context; - @version: 1 - logger_name: org.apache.jasper.runtime.JspFactoryImpl - thread_name: http-bio-0.0.0.0-8081-exec-198 - level: ERROR - customer: foobaz + @version: 1 + logger_name: org.apache.jasper.runtime.JspFactoryImpl + thread_name: http-bio-0.0.0.0-8081-exec-198 + level: ERROR + customer: foobaz +2016-08-03T12:06:31.009 - ;Exception initializing page context;  + @version: 1 + logger_name: org.apache.jasper.runtime.JspFactoryImpl + thread_name: http-bio-0.0.0.0-8081-exec-198 + level: ERROR + customer: foobaz diff --git a/test/expected/test_meta.sh_45ff39a3d0ac0ca0c95aaca14d043450cec1cedd.out b/test/expected/test_meta.sh_45ff39a3d0ac0ca0c95aaca14d043450cec1cedd.out index 0d390f54..4ccdfa59 100644 --- a/test/expected/test_meta.sh_45ff39a3d0ac0ca0c95aaca14d043450cec1cedd.out +++ b/test/expected/test_meta.sh_45ff39a3d0ac0ca0c95aaca14d043450cec1cedd.out @@ -1,5 +1,5 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" ├ Hello, World! └ #foo -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_meta.sh_4c39b356748c67ccf8a6027a1af88da532f8252a.out b/test/expected/test_meta.sh_4c39b356748c67ccf8a6027a1af88da532f8252a.out index a90f29fd..0dd4cb7f 100644 --- a/test/expected/test_meta.sh_4c39b356748c67ccf8a6027a1af88da532f8252a.out +++ b/test/expected/test_meta.sh_4c39b356748c67ccf8a6027a1af88da532f8252a.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_meta.sh_811b1a8a176b25001a89e35b295a1117ab76969b.out b/test/expected/test_meta.sh_811b1a8a176b25001a89e35b295a1117ab76969b.out index a90f29fd..0dd4cb7f 100644 --- a/test/expected/test_meta.sh_811b1a8a176b25001a89e35b295a1117ab76969b.out +++ b/test/expected/test_meta.sh_811b1a8a176b25001a89e35b295a1117ab76969b.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_meta.sh_a7489c1f0e001adc732b7e2ab31bb30960fda078.out b/test/expected/test_meta.sh_a7489c1f0e001adc732b7e2ab31bb30960fda078.out index be8af2e4..8e9417fb 100644 --- a/test/expected/test_meta.sh_a7489c1f0e001adc732b7e2ab31bb30960fda078.out +++ b/test/expected/test_meta.sh_a7489c1f0e001adc732b7e2ab31bb30960fda078.out @@ -1,4 +1,4 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" └ Goodbye, World! 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_meta.sh_c063f96398650f130941bbbf4cf63c1244fdbee5.out b/test/expected/test_meta.sh_c063f96398650f130941bbbf4cf63c1244fdbee5.out index a90f29fd..0dd4cb7f 100644 --- a/test/expected/test_meta.sh_c063f96398650f130941bbbf4cf63c1244fdbee5.out +++ b/test/expected/test_meta.sh_c063f96398650f130941bbbf4cf63c1244fdbee5.out @@ -1,3 +1,3 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_meta.sh_c8fb22932af2467a2651797a8a8d8cddcd09431d.out b/test/expected/test_meta.sh_c8fb22932af2467a2651797a8a8d8cddcd09431d.out index 2cf73b66..5cf31b13 100644 --- a/test/expected/test_meta.sh_c8fb22932af2467a2651797a8a8d8cddcd09431d.out +++ b/test/expected/test_meta.sh_c8fb22932af2467a2651797a8a8d8cddcd09431d.out @@ -1,4 +1,4 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" └ #foo 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_meta.sh_d6af0b41066ca3be0bbce89c83c011f4ecfa516e.out b/test/expected/test_meta.sh_d6af0b41066ca3be0bbce89c83c011f4ecfa516e.out index 08926305..afa72422 100644 --- a/test/expected/test_meta.sh_d6af0b41066ca3be0bbce89c83c011f4ecfa516e.out +++ b/test/expected/test_meta.sh_d6af0b41066ca3be0bbce89c83c011f4ecfa516e.out @@ -1,5 +1,5 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" ├ Hello, World! └ #foo 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_meta.sh_fd09cb565f44a114d8c9a519e571918e30262eaf.out b/test/expected/test_meta.sh_fd09cb565f44a114d8c9a519e571918e30262eaf.out index 710addad..b842402a 100644 --- a/test/expected/test_meta.sh_fd09cb565f44a114d8c9a519e571918e30262eaf.out +++ b/test/expected/test_meta.sh_fd09cb565f44a114d8c9a519e571918e30262eaf.out @@ -1,4 +1,4 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" └ #foo -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_meta.sh_fdf4a91aa55262255816dff7d605f1f0a5d6fe92.out b/test/expected/test_meta.sh_fdf4a91aa55262255816dff7d605f1f0a5d6fe92.out index 195d2c0a..af40dcce 100644 --- a/test/expected/test_meta.sh_fdf4a91aa55262255816dff7d605f1f0a5d6fe92.out +++ b/test/expected/test_meta.sh_fdf4a91aa55262255816dff7d605f1f0a5d6fe92.out @@ -1,4 +1,4 @@ 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" └ Hello, World! -192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7"