From patchwork Wed Nov 4 19:36:37 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Shi X-Patchwork-Id: 540159 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id C318D1413DD for ; Thu, 5 Nov 2015 06:55:16 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=linaro_org.20150623.gappssmtp.com header.i=@linaro_org.20150623.gappssmtp.com header.b=ikOAJMI2; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756143AbbKDTyy (ORCPT ); Wed, 4 Nov 2015 14:54:54 -0500 Received: from mail-pa0-f42.google.com ([209.85.220.42]:36458 "EHLO mail-pa0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752108AbbKDTyw (ORCPT ); Wed, 4 Nov 2015 14:54:52 -0500 Received: by pacdm15 with SMTP id dm15so37655690pac.3 for ; Wed, 04 Nov 2015 11:54:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro_org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=nnOIKeY6P5R19yHEQ5sLHkjnTMwthecTC3YdMTopxzY=; b=ikOAJMI2gWgH5kpN+1XTq6Im5b09VYzxevthCDk9fuP67VJkwgPaJPRuZfkjoOnhiW q8KtcUpXe6BEgLNDl8GDD9c/sMffPCnC0ASajyw6kup6C0IxiMp/aurAGVZB5HNZolGt TfcjuT52WCpDG5iXJ5Da3bCyWu0i0NH9F4rnkqgDpkL+87eWihF4BbPAHDfgi0+A93go 6DyrVBLpS7tvEZBX4GjIXeURuS7H04qPFHOZuTf0YLakBCmfNS+2xXcyy+KZXx1qri/+ 5AK+HUjgNUfUcIDbPte9QTuYBDqdMUM/2md1Q6fY78abtFFcG+c+IDA0opJ+6FibXsOh VeCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=nnOIKeY6P5R19yHEQ5sLHkjnTMwthecTC3YdMTopxzY=; b=GQfmD90qfZLHRMO4Jp7aXudIi8iO75NPQq4L9xafkpTXtNY27hHI/c1emeHjLU6g6n /MApVWhfWEmfx/1UyoBLYB2yEP8TkIE1plgUhnVvWZtUEWEY0wGZLAXMgiDbssB44jjM Ou+mhNqf/Y9WrDZPMrzMOR/OzFLhCIdwlxi8cGbbMdbEQhFV9CYyLnry2GXgTx+zDRcC NX1HPgmKX3DlpoXr4rSXbLH9T73JwL4s3bT91JOCNplZSc9AziZcLQKsA09KOuL2QkSm HP1IyHaZSpgBCXVvLJ4H/CG6qo1L2mm+O9IEGg6PACgWIEoJpBztmTVtf9Zmn1YMgakz 2FVA== X-Gm-Message-State: ALoCoQm5ZdAXU+fWNSroz2eyl+pwCmIjM/CjWcrkiCu+Pn+Kgy8cmI2AyiuWxFq8Nb/COS5FkBTS X-Received: by 10.68.57.235 with SMTP id l11mr4275301pbq.26.1446666892091; Wed, 04 Nov 2015 11:54:52 -0800 (PST) Received: from yshi-Precision-T5600.corp.ad.wrs.com (unknown-216-82.windriver.com. [147.11.216.82]) by smtp.gmail.com with ESMTPSA id ea1sm3535603pbb.76.2015.11.04.11.54.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 04 Nov 2015 11:54:51 -0800 (PST) From: Yang Shi To: ast@kernel.org, daniel@iogearbox.net Cc: zlim.lnx@gmail.com, xi.wang@gmail.com, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, linaro-kernel@lists.linaro.org, yang.shi@linaro.org Subject: [PATCH] bpf: add mod default A and X test cases Date: Wed, 4 Nov 2015 11:36:37 -0800 Message-Id: <1446665797-21400-1-git-send-email-yang.shi@linaro.org> X-Mailer: git-send-email 2.0.2 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When running "mod X" operation, if X is 0 the filter has to be halt. Add new test cases to cover A = A mod X if X is 0, and A = A mod 1. CC: Xi Wang CC: Zi Shen Lim Signed-off-by: Yang Shi Acked-by: Daniel Borkmann Acked-by: Alexei Starovoitov Acked-by: Zi Shen Lim Acked-by: Xi Wang --- lib/test_bpf.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/lib/test_bpf.c b/lib/test_bpf.c index d137739..10cd186 100644 --- a/lib/test_bpf.c +++ b/lib/test_bpf.c @@ -5056,6 +5056,36 @@ static struct bpf_test tests[] = { { {0x1, 0x0 } }, }, { + "MOD default X", + .u.insns = { + /* + * A = 0x42 + * A = A mod X ; this halt the filter execution if X is 0 + * ret 0x42 + */ + BPF_STMT(BPF_LD | BPF_IMM, 0x42), + BPF_STMT(BPF_ALU | BPF_MOD | BPF_X, 0), + BPF_STMT(BPF_RET | BPF_K, 0x42), + }, + CLASSIC | FLAG_NO_DATA, + {}, + { {0x1, 0x0 } }, + }, + { + "MOD default A", + .u.insns = { + /* + * A = A mod 1 + * ret A + */ + BPF_STMT(BPF_ALU | BPF_MOD | BPF_K, 0x1), + BPF_STMT(BPF_RET | BPF_A, 0x0), + }, + CLASSIC | FLAG_NO_DATA, + {}, + { {0x1, 0x0 } }, + }, + { "JMP EQ default A", .u.insns = { /*