summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-05-15 03:41:49 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-05-15 03:41:49 +0200
commit407fbebc2da14520942e0a6a9220a5a3cfc4a7ad (patch)
treee313ddad41398382f82cd27b40f46e0b7394c393 /tests
parent7d33bab5abd81871e4efcf995f8a715d45b9d590 (diff)
rename businesslayer to service
Diffstat (limited to 'tests')
-rw-r--r--tests/acceptance/Gemfile7
-rw-r--r--tests/acceptance/Gemfile.lock55
-rw-r--r--tests/acceptance/Makefile30
-rw-r--r--tests/acceptance/features/create_new.feature27
-rw-r--r--tests/acceptance/features/step_definitions/basic_steps.rb25
-rw-r--r--tests/acceptance/features/step_definitions/create_new_steps.rb47
-rw-r--r--tests/acceptance/features/support/env.rb28
-rw-r--r--tests/acceptance/features/support/headless.rb34
-rw-r--r--tests/acceptance/logs/.gitignore1
-rw-r--r--tests/acceptance/run.sh80
-rw-r--r--tests/acceptance/static/kernel.org.atom165
-rw-r--r--tests/unit/controller/ExportControllerTest.php27
-rw-r--r--tests/unit/controller/FeedApiControllerTest.php86
-rw-r--r--tests/unit/controller/FeedControllerTest.php106
-rw-r--r--tests/unit/controller/FolderApiControllerTest.php62
-rw-r--r--tests/unit/controller/FolderControllerTest.php87
-rw-r--r--tests/unit/controller/ItemApiControllerTest.php70
-rw-r--r--tests/unit/controller/ItemControllerTest.php72
-rw-r--r--tests/unit/service/FeedServiceTest.php (renamed from tests/unit/businesslayer/FeedBusinessLayerTest.php)54
-rw-r--r--tests/unit/service/FolderServiceTest.php (renamed from tests/unit/businesslayer/FolderBusinessLayerTest.php)42
-rw-r--r--tests/unit/service/ItemServiceTest.php (renamed from tests/unit/businesslayer/ItemBusinessLayerTest.php)48
-rw-r--r--tests/unit/service/ServiceTest.php (renamed from tests/unit/businesslayer/BusinessLayerTest.php)22
-rw-r--r--tests/unit/service/StatusFlagTest.php (renamed from tests/unit/businesslayer/StatusFlagTest.php)0
-rw-r--r--tests/unit/utility/UpdaterTest.php38
24 files changed, 357 insertions, 856 deletions
diff --git a/tests/acceptance/Gemfile b/tests/acceptance/Gemfile
deleted file mode 100644
index 353eb5fe6..000000000
--- a/tests/acceptance/Gemfile
+++ /dev/null
@@ -1,7 +0,0 @@
-source 'https://rubygems.org'
-
-gem 'cucumber'
-gem 'capybara'
-gem 'selenium-webdriver'
-gem 'headless'
-gem 'rspec'
diff --git a/tests/acceptance/Gemfile.lock b/tests/acceptance/Gemfile.lock
deleted file mode 100644
index a886a54e9..000000000
--- a/tests/acceptance/Gemfile.lock
+++ /dev/null
@@ -1,55 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- builder (3.2.0)
- capybara (2.1.0)
- mime-types (>= 1.16)
- nokogiri (>= 1.3.3)
- rack (>= 1.0.0)
- rack-test (>= 0.5.4)
- xpath (~> 2.0)
- childprocess (0.3.9)
- ffi (~> 1.0, >= 1.0.11)
- cucumber (1.3.1)
- builder (>= 2.1.2)
- diff-lcs (>= 1.1.3)
- gherkin (~> 2.12.0)
- multi_json (~> 1.3)
- diff-lcs (1.2.4)
- ffi (1.8.1)
- gherkin (2.12.0)
- multi_json (~> 1.3)
- headless (1.0.1)
- mime-types (1.23)
- multi_json (1.7.3)
- nokogiri (1.5.9)
- rack (1.5.2)
- rack-test (0.6.2)
- rack (>= 1.0)
- rspec (2.13.0)
- rspec-core (~> 2.13.0)
- rspec-expectations (~> 2.13.0)
- rspec-mocks (~> 2.13.0)
- rspec-core (2.13.1)
- rspec-expectations (2.13.0)
- diff-lcs (>= 1.1.3, < 2.0)
- rspec-mocks (2.13.1)
- rubyzip (0.9.9)
- selenium-webdriver (2.32.1)
- childprocess (>= 0.2.5)
- multi_json (~> 1.0)
- rubyzip
- websocket (~> 1.0.4)
- websocket (1.0.7)
- xpath (2.0.0)
- nokogiri (~> 1.3)
-
-PLATFORMS
- ruby
-
-DEPENDENCIES
- capybara
- cucumber
- headless
- rspec
- selenium-webdriver
diff --git a/tests/acceptance/Makefile b/tests/acceptance/Makefile
deleted file mode 100644
index d8b4d79bb..000000000
--- a/tests/acceptance/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# ownCloud - News
-#
-# @author Bernhard Posselt
-# @copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-# License as published by the Free Software Foundation; either
-# version 3 of the License, or any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-#
-# You should have received a copy of the GNU Affero General Public
-# License along with this library. If not, see <http://www.gnu.org/licenses/>.
-
-# This makefile is for general project specific stuff like packaging a new
-# release for the app store and running php unittests which require core
-
-bash=/bin/bash
-
-all: acceptance
-
-acceptance:
- $(bash) run.sh
-
-headless:
- export HEADLESS=true && $(bash) run.sh \ No newline at end of file
diff --git a/tests/acceptance/features/create_new.feature b/tests/acceptance/features/create_new.feature
deleted file mode 100644
index 9e5d9708f..000000000
--- a/tests/acceptance/features/create_new.feature
+++ /dev/null
@@ -1,27 +0,0 @@
-# encoding: utf-8
-Feature: create_new
- In order to start using the news rss reader
- As a user
- I want to be able to add feeds and folders
-
- Background:
- Given I am logged in
- And I am in the "news" app
-
- Scenario: default state when opening page
- When I look at the add new button
- Then I should not see a caption on the add new button
- And I should not see a form to add feeds and folders
-
- Scenario: show caption on hover
- When I hover over the add new button
- Then I should see a "Add Website" caption on the add new button
-
- Scenario: show add website dialogue
- When I click on the add new button
- Then I should see a form to add feeds and folders
-
- Scenario: hide add website dialogue when clicking somewhere else
- Given I click on the add new button
- When I click somewhere else
- Then I should not see a form to add feeds and folders \ No newline at end of file
diff --git a/tests/acceptance/features/step_definitions/basic_steps.rb b/tests/acceptance/features/step_definitions/basic_steps.rb
deleted file mode 100644
index f62fdf9c7..000000000
--- a/tests/acceptance/features/step_definitions/basic_steps.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-Given (/^I am logged in$/) do
-
- # be sure to use the right browser session
- Capybara.session_name = 'test'
-
- # logout - just to be sure
- visit '/index.php?logout=true'
- visit '/'
- fill_in 'user', with: 'test'
- fill_in 'password', with: "test"
- click_button 'submit'
-
- # if visibility is not set to false it will fail
- page.should have_selector('a#logout', :visible => false)
-end
-
-Given (/^I am in the "([^"]+)" app$/) do |app|
- visit "/index.php/apps/#{app}/"
- page.should have_selector('a#logout', :visible => false)
-end
-
-When (/^I go to "([^"]+)"$/) do |path|
- visit "#{path}"
- page.should have_selector('a#logout', :visible => false)
-end \ No newline at end of file
diff --git a/tests/acceptance/features/step_definitions/create_new_steps.rb b/tests/acceptance/features/step_definitions/create_new_steps.rb
deleted file mode 100644
index 5b1d761e2..000000000
--- a/tests/acceptance/features/step_definitions/create_new_steps.rb
+++ /dev/null
@@ -1,47 +0,0 @@
-# use this to turn off animations to check for visibility
-def turn_off_animations
- page.execute_script("$.fx.off=true")
-end
-
-When (/^I look at the add new button$/) do
-end
-
-When (/^I hover over the add new button$/) do
- # FIXME: get this working with hover action
- page.execute_script("$('.list-title span').show()")
-end
-
-When (/^I hover out off the add new button$/) do
- # FIXME: get this working with hover action
- page.execute_script("$('.list-title span').hide()")
-end
-
-Then (/^I should (not )?see a (?:"([^"]+)" )?caption on the add new button$/) do |shouldNot, caption|
- selector = "//li[contains(@class,\"add-new\")]/a/span[1]"
- if shouldNot
- page.should have_no_selector(:xpath, selector)
- else
- page.find(:xpath, selector).should have_content(caption)
- end
-end
-
-
-When (/^I click on the add new button$/) do
- turn_off_animations()
- click_link 'Add Website'
-end
-
-When (/^I click somewhere else$/) do
- page.execute_script("$('#app-content').trigger('click')")
-end
-
-
-Then (/^I should (not )?see a form to add feeds and folders$/) do |shouldNot|
- selector = "//*[contains(@class,\"add-new-popup\")]"
-
- if shouldNot
- page.should have_no_selector(:xpath, selector)
- else
- page.should have_selector(:xpath, selector)
- end
-end
diff --git a/tests/acceptance/features/support/env.rb b/tests/acceptance/features/support/env.rb
deleted file mode 100644
index 91af642bf..000000000
--- a/tests/acceptance/features/support/env.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-require 'bundler/setup'
-require 'capybara/cucumber'
-require 'selenium-webdriver'
-
-Encoding.default_external = Encoding::UTF_8
-Encoding.default_internal = Encoding::UTF_8
-
-Capybara.register_driver :selenium do |app|
- http_client = Selenium::WebDriver::Remote::Http::Default.new
- http_client.timeout = 200
- Capybara::Selenium::Driver.new(app, :browser => :firefox, :http_client => http_client)
-end
-
-#
-# app and app_host are set via command line parameter on cucumber call:
-# cucumber HOST=33.33.33.10
-#
-host = ENV['HOST']
-host ||= '33.33.33.10'
-
-Capybara.app = host
-Capybara.run_server = false
-Capybara.app_host = "http://#{host}"
-Capybara.default_selector = :css
-Capybara.default_driver = :selenium
-
-# serve static files
-#run Rack::Directory.new Dir.pwd.concat('./static') \ No newline at end of file
diff --git a/tests/acceptance/features/support/headless.rb b/tests/acceptance/features/support/headless.rb
deleted file mode 100644
index a2095205f..000000000
--- a/tests/acceptance/features/support/headless.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-# only run when export HEADLESS=true
-if ENV['HEADLESS'] == 'true'
-
- require 'headless'
-
- headless = Headless.new
- headless.start
-
- at_exit do
- headless.destroy
- end
-
- Before do
- #headless.video.start_capture
- end
-
- After do |scenario|
- # for demo purpose: always record ;-)
- #video= video_path(scenario)
- #puts "Writing video to #{File.expand_path(video)}"
- #headless.video.stop_and_save(video)
-
- # if scenario.failed?
- # headless.video.stop_and_save(video_path(scenario))
- # else
- # headless.video.stop_and_discard
- # end
- end
-
- def video_path(scenario)
- "#{scenario.name.split.join("_")}.mov"
- end
-
-end \ No newline at end of file
diff --git a/tests/acceptance/logs/.gitignore b/tests/acceptance/logs/.gitignore
deleted file mode 100644
index a6c57f5fb..000000000
--- a/tests/acceptance/logs/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.json
diff --git a/tests/acceptance/run.sh b/tests/acceptance/run.sh
deleted file mode 100644
index 2a6afbfd2..000000000
--- a/tests/acceptance/run.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-# ownCloud - News
-#
-# @author Bernhard Posselt
-# @copyright 2013 Bernhard Posselt dev@bernhard-posselt.com
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-# License as published by the Free Software Foundation; either
-# version 3 of the License, or any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-#
-# You should have received a copy of the GNU Affero General Public
-# License along with this library. If not, see <http://www.gnu.org/licenses/>.
-
-
-
-# set up rvm and xvfb dependencies
-if [[ ! -e "/usr/bin/xvfb-run" ]]; then
-
- # archlinux
- if [[ -e "/usr/bin/pacman" ]]; then
- echo "installing xvfb, please enter password..."
- sudo pacman -S xorg-server-xvfb
-
- # fedora
- elif [[ -e "/usr/bin/yum" ]]; then
- echo "installing xvfb, please enter password..."
- yum install xorg-x11-server-Xvfb
-
- # debian
- elif [[ -e "/usr/bin/apt-get" ]]; then
- echo "installing xvfb, please enter password..."
- sudo apt-get install xvfb
-
- else
- echo "You have to install xvfb in order to run the test suite"
- exit 1
- fi
-fi
-
-
-# dont use --user-install for gems since this breaks rvm. abort setup in case it
-# exists
-if [[ -e "/etc/gemrc" ]]; then
- if grep -qe "^[^#].*user-install" /etc/gemrc; then
- echo "Found --user-install in /etc/gemrc"
- echo "Please remove it, as it will break rubygems in RVM."
- exit 1
- fi
-fi
-
-# set up rvm
-if [[ -f "$HOME/.rvm/scripts/rvm" ]]; then
- source "$HOME/.rvm/scripts/rvm"
-elif [[ -f "/usr/local/rvm/scripts/rvm" ]]; then
- source "/usr/local/rvm/scripts/rvm"
-else
- # set up a local rvm installation
- curl -L get.rvm.io | bash -s stable
- [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
-fi
-
-
-# Set the gemset and ruby version
-rvm install 2.0.0
-rvm use ruby-2.0.0@oc_news_acceptance --create
-
-# install dep libraries
-bundle install
-
-# if the OWNCLOUD_HOST variable is not set it will default to localhost/owncloud
-if [[ -z "$OWNCLOUD_HOST" ]]; then
- export OWNCLOUD_HOST='localhost/owncloud'
-fi
-
-cucumber -f json -o ./logs/owncloud.json -f pretty HOST=$OWNCLOUD_HOST features \ No newline at end of file
diff --git a/tests/acceptance/static/kernel.org.atom b/tests/acceptance/static/kernel.org.atom
deleted file mode 100644
index dd89453ec..000000000
--- a/tests/acceptance/static/kernel.org.atom
+++ /dev/null
@@ -1,165 +0,0 @@
-<feed xmlns="http://www.w3.org/2005/Atom">
-<title>The Linux Kernel Archives</title>
-<link href="https://www.kernel.org/" rel="alternate"/>
-<link href="https://www.kernel.org/feeds/all.atom.xml" rel="self"/>
-<id>https://www.kernel.org/</id>
-<updated>2013-05-07T00:00:00+00:00</updated>
-<entry>
-<title>Fifty shades of Tux</title>
-<link href="https://www.kernel.org/fifty-shades-of-tux.html" rel="alternate"/>
-<updated>2013-05-07T00:00:00+00:00</updated>
-<author>
-<name/>
-</author>
-<id>
-tag:https://www.kernel.org,2013-05-07:fifty-shades-of-tux.html
-</id>
-<summary type="html">
-<p>Special thanks to BenoƮt Monin for donating a MIT-licensed CSS theme to the kernel.org project to replace the one we hastily put together. Though the Pelican authors have since obtained a free-license commitment from the copyright owners of the CSS files shipping with Pelican, we wanted to have something that looked a bit less like the default theme anyway.</p> <p>If anyone else wants to participate, full sources of the kernel.org website are available from the <a class="reference external" href="https://git.kernel.org/cgit/docs/kernel/website.git">git repository</a>.</p>
-</summary>
-</entry>
-<entry>
-<title>Frequently asked questions</title>
-<link href="https://www.kernel.org/faq.html" rel="alternate"/>
-<updated>2013-04-02T22:13:02+00:00</updated>
-<author>
-<name/>
-</author>
-<id>tag:https://www.kernel.org,2013-04-02:faq.html</id>
-<summary type="html">
-<p>If you have questions, comments or concerns about the F.A.Q. please contact us at <a class="reference external" href="mailto:webmaster&#64;kernel.org">webmaster&#64;kernel.org</a>.</p> <div class="section" id="is-linux-kernel-free-software"> <h2>Is Linux Kernel Free Software?</h2> <p>Linux kernel is released under GNU GPL version 2 and is therefore Free Software as defined by the <a class="reference external" href="http://www.fsf.org/">Free Software Foundation</a>. You may read the entire copy of the license in the <a class="reference external" href="/pub/linux/kernel/COPYING">COPYING</a> file distributed with each release of the Linux kernel.</p> </div> <div class="section" id="there-are-a-number-of-kernels-marked-as-stable-which-one-is-stable"> <h2>There are a number of kernels marked as 'stable', which one is stable?</h2> <p>There are a number of reasons there are multiple kernels marked as 'stable'. The stable series kernels stem from a <a class="reference external" href="http://kerneltrap.org/node/4100">conversation that happened in 2004</a>, it has evolved into a number of kernels that are currently being maintained under the 'stable' moniker.</p> <p>These kernels have patches that are backported to them, mainly in the form of driver updates and security fixes. Some of these trees have been declared to have longer life cycles than others.</p> <p>Please check the <a class="reference external" href="https://www.kernel.org/releases.html">Releases</a> page for more info.</p> </div> <div class="section" id="what-does-stable-eol-and-longterm-mean"> <h2>What does &quot;stable/EOL&quot; and &quot;longterm&quot; mean?</h2> <p>As kernels move from the &quot;mainline&quot; into the &quot;stable&quot; category, two things can happen:</p> <ol class="arabic simple"> <li>They can reach &quot;End of Life&quot; after a few bugfix revisions, which means that kernel maintainers will release no more bugfixes for this kernel version, or</li> <li>They can be put into &quot;longterm&quot; maintenance, which means that maintainers will provide bugfixes for this kernel revision for a much longer period of time.</li> </ol> <p>If the kernel version you are using is marked &quot;EOL,&quot; you should consider upgrading to the next major version as there will be no more bugfixes provided for the kernel version you are using.</p> <p>Please check the <a class="reference external" href="https://www.kernel.org/releases.html">Releases</a> page for more info.</p> </div> <div class="section" id="is-there-an-rss-feed-for-the-latest-kernel-version"> <h2>Is there an RSS feed for the latest kernel version?</h2> <p>Yes, and you can find it at <a class="reference external" href="https://www.kernel.org/feeds/kdist.xml">https://www.kernel.org/feeds/kdist.xml</a>.</p> <p>We also publish a .json file with the latest release information, which you can pull from here: <a class="reference external" href="https://www.kernel.org/releases.json">https://www.kernel.org/releases.json</a>.</p> </div> <div class="section" id="why-are-there-files-that-are-dated-tomorrow"> <h2>Why are there files that are dated tomorrow?</h2> <p>All timestamps on kernel.org are in UTC (Coordinated Universal Time). If you live in the western hemisphere your local time lags behind UTC. Under Linux/Unix, type <tt class="docutils literal">date <span class="pre">-u</span></tt> to get the current time in UTC.</p> </div> <div class="section" id="can-i-get-an-account-on-kernel-org"> <h2>Can I get an account on kernel.org?</h2> <p>Kernel.org accounts are not given away very often, usually you need to be making some reasonable amount of contributions to the Linux kernel and have a good reason for wanting / needing an account. If you really feel that you should have an account please e-mail the following to <a class="reference external" href="mailto:keys&#64;kernel.org">keys&#64;kernel.org</a>:</p> <ul class="simple"> <li>full name</li> <li>email address</li> <li>desired username</li> <li>reason for account</li> <li>reference to work you've done</li> <li>PGP/GPG public key fingerprint (NOT an ssh key)<ul> <li>Key should be signed by as many kernel developers as you can get</li> <li>Accounts will not issued until key is suffciently signed</li> <li>Key must have been uploaded to public key servers</li> </ul> </li> </ul> <p>The Kernel.org admin team will then review your request and let you know the decision.</p> <p>Please note that The Linux Kernel Organization, Inc. reserves the right to refuse service to anyone, for any reason.</p> </div> <div class="section" id="i-have-cool-project-x-can-you-guys-mirror-it-for-me"> <h2>I have cool project X, can you guys mirror it for me?</h2> <p>Probably not. Kernel.org deals with the Linux kernel, various distributions of the kernel and larger repositories of packages. We do not mirror individual projects, software, etc as we feel there are better places providing mirrors for those kinds of repositories. If you feel that kernel.org should mirror your project, please contact <a class="reference external" href="mailto:ftpadmin&#64;kernel.org">ftpadmin&#64;kernel.org</a> with the following information:</p> <ul class="simple"> <li>name</li> <li>project name</li> <li>project website</li> <li>detailed project description</li> <li>reason for wanting us to mirror</li> </ul> <p>The Kernel.org admin team will then review your request and talk to you about it. As with any kind of account on kernel.org it's up to the discretion of the admin team.</p> </div> <div class="section" id="how-does-kernel-org-provide-its-users-access-to-the-git-trees"> <h2>How does kernel.org provide its users access to the git trees?</h2> <p>We are using an access control system called <a class="reference external" href="https://github.com/sitaramc/gitolite/wiki">gitolite</a>, originally written and maintained by Sitaram Chamarty. We choose gitolite for a number of reasons:</p> <ul class="simple"> <li>Limiting of ssh access to the system</li> <li>Fine grained control over repository access</li> <li>Well maintained and supported code base</li> <li>Responsive development</li> <li>Broad and diverse install base</li> </ul> <p>As well at the time of deployment the code had undergone an external code review.</p> </div> <div class="section" id="how-do-i-create-an-rc-kernel-i-get-reversed-patch-detected"> <h2>How do I create an -rc kernel? I get &quot;Reversed patch detected!&quot;</h2> <p>-rc kernel patches are generated from the base stable release.</p> <p>For example: to create the 2.6.14-rc5 kernel, you must:</p> <ul class="simple"> <li>download 2.6.13 (not 2.6.13.4)</li> <li>and then apply the 2.6.14-rc5 patch.</li> </ul> <p>Yes, you want 2.6.13, not 2.6.14. Remember, that's an -rc kernel, as in, 2.6.14 doesn't exist yet. :)</p> </div> <div class="section" id="where-can-i-find-kernel-2-4-20-3-16"> <h2>Where can I find kernel 2.4.20-3.16?</h2> <p>Kernel version numbers of this form are distribution kernels, meaning they are modified kernels produced by distributions. Please contact the relevant distributor; or check out <a class="reference external" href="http://mirrors.kernel.org/">http://mirrors.kernel.org/</a>.</p> <p>See the <a class="reference external" href="https://www.kernel.org/releases.html">Releases</a> page for more info on distribution kernels.</p> </div> <div class="section" id="i-need-help-building-patching-fixing-linux-kernel-modules-drivers"> <h2>I need help building/patching/fixing Linux kernel/modules/drivers!</h2> <p>Please see the <a class="reference external" href="http://kernelnewbies.org/">Kernel Newbies</a> website.</p> <p>There is also a wealth of knowledge on many topics involving Linux at The Linux Documentation Project (<a class="reference external" href="http://www.tldp.org">http://www.tldp.org</a>)</p> <p>For finding or reporting bugs, look through the archives for the various Linux mailing lists, and if no specific list seems appropriate, try the browsing the Linux Kernel Mailing List.</p> </div> <div